poj 1032 Parliament

poj 1032 Parliament

这题是给定一个数,求把这个数分解成任意多个不相等的数,使这些数的积最大,感谢队友4页纸的推导~
#include  < stdio.h >

int  n;
int  num[ 1010 ];

int  main()
{
    
while  ( EOF  !=  scanf( " %d " & n) )
    {
        
int  i, k  =   2 ;
        
for  ( i  =   0  ; k  <=  n ; i ++  )
        {
            num[i]
=  k;
            n
-= k;
            k
++ ;
        }
        
for  ( k  =  i - 1  ; n ; k --  )
        {
            num[k]
++ ;
            n
-- ;
            
if  (  ! k )
                k 
=  i;
        }
        printf(
" %d " , num[ 0 ]);
        
for  ( k  =   1  ; k  <  i ; k ++  )
            printf(
"  %d " , num[k]);
        putchar(
10 );
    }
    
return   0 ;
}

你可能感兴趣的:(poj 1032 Parliament)