給你乙個非負數整數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...