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/p/1941312.html