題目大意
輸入乙個數,判斷這個數能不能用互不相等的非負整數的階乘的和來表示,例如9=1!+2!+3!.
輸入在輸入檔案中給出幾個非負整數n,每行乙個數字,輸入的內容以乙個負數來結束。
輸出如果可以表示則輸出yes否則輸出no.
sample input
-1sample output
yesno
【解析】
這道題就是把0-9的階乘都算出來之後,從9的階乘開始,一直的比較然後不斷的相減,看最後n是否等於0,為0則是可以的否則就不行
#include#include#includeusing namespace std;
int main()
while(scanf("%d",&n)&&n>=0)
for(i=9;i>=0;i--)
}if(n!=0)
printf("no\n");
}return 0;
}
acm 階乘之和
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 給你乙個非負數整數 n,判斷 n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如 9 1!2 3 如果是,則輸出 yes,否則輸出no 輸入 第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 ...
nyoj 階乘之和
階乘之和 描述 給你乙個非負數整數n,判斷n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如9 1!2 3 如果是,則輸出yes,否則輸出no 輸入 第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 29 10 樣例輸出 yes no 方法一 includeint...
nyoj 階乘之和
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述給你乙個非負數整數n,判斷n是不是一些數 這些數不允許重複使用,且為正數 的階乘之和,如9 1!2 3 如果是,則輸出yes,否則輸出no 輸入第一行有乙個整數0 輸出如果符合條件,輸出yes,否則輸出no 樣例輸入 2 9 10...