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;
}

posted on 2011-10-03 20:18 purplest 阅读(216) 评论(0)  编辑 收藏 引用 所属分类: 数论


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿

随笔分类(70)

随笔档案(68)

ACMer

搜索

最新随笔

最新评论