poj 1032 Parliament 编程的小技巧

题意不好懂

#include<iostream>

using namespace std;

int main()

{

int n;

int a[100];

while(cin>>n)

{

memset(a,0,sizeof(a));

int i;

int h=0;

for(i=2;i+h<=n;i++)

{

h+=i;

a[i]=i;

}

int leave=n-h;

while(leave)//防止leave非常大,而j循环已经完事了 

{

for(int j=i-1;j>=2&&leave!=0;j--)

    {

    a[j]++;

    leave--;

     }

    

for(int j=2;j<i;j++)

{

if(j==(i-1))

cout<<a[j]<<endl;

else

cout<<a[j]<<" ";

}

}

return 0;

}


你可能感兴趣的:(poj 1032 Parliament 编程的小技巧)