题目大概:
输入一个数,可以分解成很多数字相加组成,当分解的这些数乘积最大数,输出所有的分解数,分解个数,乘积。
思路:
分解为三乘积最大,但最后剩下4时不能分解,这个题用循环相减,看减掉的三与最后的数的乘积就可以了。
感想:
无。
代码:
#include <iostream>
using namespace std;
int main()
{int n;
while(cin>>n)
{
int a[20]={0},i,sum=1;
for( i=0;;i++)
{if(n<=4){a[i]=n;break;}
n=n-3;
a[i]=3;
}
for(int t=0;t<i+1;t++)
{cout<<a[t]<<" ";sum=sum*a[t];
}
cout<<endl<<i+1<<" "<<sum<<endl;
}
return 0;
}