題目:
描述對乙個自然數n(1 <= n <= 50),n可以分解成若干個數字(數字可以是1,2,3,...,9)之和,問題是如何分解能使這些數字的乘積最大。
輸入輸入資料有多組,每組佔一行,每行包含乙個自然數n(1 <= n <= 50)。輸入檔案直到eof為止!
輸出對於每組輸入,輸出有2行。第一行是n分解出的所有數字,以空格分隔,最後乙個數字後也有空格;第二行是n分解出的所有數字的個數,乘積。
樣品輸入
202428
樣品輸出
3 3 3 3 3 3 27 1458
3 3 3 3 3 3 3 3
8 6561
3 3 3 3 3 3 3 3 4
9 26244
暗示由數學知識可知,只有把n分成盡可能多的3,它們的乘積才能最大(當只剩下4時不用再分,因為:4> 3 * 1)
解題思路:
題目有了暗示就好做多了,將數字分解成3,當餘數小於三時作為遞迴的終止條件。
**:#include
using namespace std;
int k=0,sum=1;
void f(int a)
return 0;
}
遞推遞迴練習M 數值分解
description 對乙個自然數n 1 n 50 n可以分解成若干個數字 數字可以是1,2,3,9 之和,問題是如何分解能使這些數字的乘積最大。input 輸入資料有多組,每組佔一行,每行包含乙個自然數n 1 n 50 輸入檔案直到eof為止!output 對每組輸入,輸出有2行。第一行是n分解...
遞推遞迴練習M數值分解
description 對乙個自然數n 1 n 50 n可以分解成若干個數字 數字可以是1,2,3,9 之和,問題是如何分解能使這些數字的乘積最大。input 輸入資料有多組,每組佔一行,每行包含乙個自然數n 1 n 50 輸入檔案直到eof為止!output 對每組輸入,輸出有2行。第一行是n分解...
遞推遞迴練習 M 數值分解
description 對乙個自然數n 1 n 50 n可以分解成若干個數字 數字可以是1,2,3,9 之和,問題是如何分解能使這些數字的乘積最大。input 輸入資料有多組,每組佔一行,每行包含乙個自然數n 1 n 50 輸入檔案直到eof為止!output 對每組輸入,輸出有2行。第一行是n分解...