題目91 階乘之和

2021-08-08 03:36:14 字數 785 閱讀 4114

給你乙個非負數整數n,判斷n是不是一些數(這些數不允許重複使用,且為正數)的階乘之和,如9=1!+2!+3!,如果是,則輸出yes,否則輸出no;

第一行有乙個整數0如果符合條件,輸出yes,否則輸出no;

2 9

10yes

no考慮輸入最大值為1000000,不超過10!,故可以使用貪心法求解,從10開始迴圈遞減到1,從大到小進行貪心選擇,如果輸入值n#include

using

namespace

std;

//階乘函式

int jiecheng(int num)

return sum;

}int def(int n)

}//當temp = 0時,輸出yes

if (temp == 0)

cout

<< "yes"

<< endl;

else

cout

<< "no"

<< endl;

return0;}

int main()

return

0;}#include

using

namespace

std;

int main()

; cin>>n;

while(n--)

if(flag)

cout

<<"yes"

cout

<<"no"

《由源**可知,最優演算法的時間複雜度為o(1),最大迴圈次數為9,固定,與輸入無關。

NYOJ 91 階乘之和

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 給你乙個非負數整數n,判斷n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如9 1!2 3 如果是,則輸出yes,否則輸出no 輸入 第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 2910...

NYOJ 91 階乘之和

時間限制 3000 ms 記憶體限制 65535 kb 難度 3描述 給你乙個非負數整數n,判斷n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如9 1!2 3 如果是,則輸出yes,否則輸出no 輸入 第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 2 9 1...

nyoj 91 階乘之和

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 給你乙個非負數整數n,判斷n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如9 1!2 3 如果是,則輸出yes,否則輸出no 輸入 第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 29 1...