[此贴子已经被作者于2007-10-15 22:56:18编辑过]
[此贴子已经被作者于2007-10-15 22:54:56编辑过]
1.一切大于1的数都可以用2,3的和来分解.2.假设a=b+c,其中得到的b*c最大同时,b,c也可以这样分解.(递归)现在来证明用2,3分解得到的数最大从4 (从4开始都是这样)分解当然是2,2,所有加数为4的都应该分解为2,2才可以得到最大.反证:假设任意一个数分解成若干数的和能得到最大的乘积(其中这些因子不包含3,2)则 这些加数一定可以分解成2,3的组合(根据第一条),再根据第二条,既然可以分解成2,3使得得到的乘积是最大的那就证明了因子不是2,3是错误的.所以每个数要分解成2,3的组合才能得到最大.具体怎么样的组合才可以得到最大那就是贪心.仅当被分解的数不小于2,就用3分解.直到0.
k=num/3;t=1;if(num%3==1){ k--; t++;}else if(num%3==0){ t--;}得到k个3 t个2