時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3
描述
給你乙個非負數整數n,判斷n是不是一些數(這些數不允許重複使用,且為正數)的階乘之和,如9=1!+2!+3!,如果是,則輸出yes,否則輸出no;
輸入
第一行有乙個整數0
輸出如果符合條件,輸出yes,否則輸出no;
樣例輸入
2
9
10
樣例輸出
yes
no
上傳者李劍鋒
思路:此題看起來很難,懂了又很簡單
因為每組測試資料是乙個正整數n<1000000,所以這個數一定在9的階乘數362880以內(包含),再大就超過1000000了。
並且他的 階乘和分解數(比如對 m= 7 來說: 1!+2!+3! )中最大的那個一定是小於他本身的最大數的階乘(即3!=6)
再將 m= 7 -3!=1 ,再比較下乙個數m < 2!,再比較下乙個數 m< =1! ,然後m= 1 -1!=0,當m==0時 比較完畢,輸出yes ,若m!=0,輸出no.
#includeint main();
int n,m,i;
scanf("%d",&n);
while(n--)
return 0;
}
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...