首页 > 试题广场 >

题目标题: 最大乘积的整数的拆分

[问答题]

题目标题:

最大乘积的整数的拆分

题目描述:

将一个整数N分解成各不相同的加数的和,(这个位置有问题。。。)使这些加数的乘积最大。N范围为[5,1000]

输入描述:

输入一个整数N5<=N<=1000)

输出描述:

能够使得积最大的加数序列

样式输入:

7

样式输出:

3 4

#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i,k,r;
k=n/3;/*
可以通过数学证明得到,当换分数是自然对数e时,成绩最大,因而多划3,至于是划4还是2就看余数是多少了*/
r=n%3;
if(r==0)
{
printf("3");
for(i=0;i<k-1;i++)
printf(" 3");
}
if(r==1)
{
r=4;
k--;
for(i=0;i<k;i++)
printf("3 ");
printf("4");
}
if(r==2)
{
printf("2");
for(i=0;i<k;i++)
printf(" 3");
}
return 0;
}

发表于 2017-05-17 04:27:40 回复(0)