SDUT 數值分解

2021-08-16 19:30:44 字數 926 閱讀 9785

time limit: 1000 ms

memory limit: 65536 kib

submit

statistic

problem description

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

input

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

output

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

sample input

20

2428

sample output

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

hint

由數學知識可知,只有把n分成盡可能多的3,它們的乘積才能最大(當只剩下4時不用再分,因為: 4 > 3*1)

source

#includelong long pows(int n)

return x;

}int main()

printf("\n%d %d\n",k,pows(k));

} else if(n%3==2)

printf("2\n%d %d\n",k+1,pows(k)*2);

} else

printf("4\n%d %d\n",k+1,pows(k)*4);

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

數值分解 oj

time limit 1000 ms memory limit 65536 kib submit statistic problem description 對乙個自然數n 1 n 50 n可以分解成若干個數字 數字可以是1,2,3,9 之和,問題是如何分解能使這些數字的乘積最大。input 輸入資...