POJ 1032

思路
按照2+3+4+...求和
for(i=2;n-sum>i;i++)    /*利用循环并判断n-m是否<或=i*/  
    sum+=i;         
printf("%d",2);        /*= ,则利用循环打出*/  
for(t=3;t<=i;t++)    
    printf(" %d",t); 
t=n-sum; /*余几*/           /*< ,则利用循环分部打出*/   
s=i-2;    /*数列个数*/   
k=t/s;    /*平均每个数加几*/       /*若剩余大于个数,则每个数加k*/   
y=t%s;    /*还剩几*/              /*剩余的从大到小依次加一*/   
printf("%d",2+k);   
for(j=3;j<=s-y+1;j++)   
    printf(" %d",j+k);   
for(j=s-y+2;j<=s+1;j++)    
    printf(" %d",j+k+1);

转载于:https://www.cnblogs.com/submarinex/archive/2010/02/26/1941312.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值