遞推遞迴 M 數值分解

2021-07-30 07:33:25 字數 650 閱讀 2970

題目:

描述對乙個自然數n(1 <= n <= 50),n可以分解成若干個數字(數字可以是1,2,3,...,9)之和,問題是如何分解能使這些數字的乘積最大。

輸入輸入資料有多組,每組佔一行,每行包含乙個自然數n(1 <= n <= 50)。輸入檔案直到eof為止!

輸出對於每組輸入,輸出有2行。第一行是n分解出的所有數字,以空格分隔,最後乙個數字後也有空格;第二行是n分解出的所有數字的個數,乘積。

樣品輸入

20

2428

樣品輸出

3 3 3 3 3 3 2

7 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分解...