階乘之和
時間限制:3000 ms | 內存限制:65535 KB
難度:3
描述
給你一個非負數整數n,判斷n是不是一些數(這些數不允許重複使用,且爲正數)的階乘之和,如9=1!+2!+3!,如果是,則輸出Yes,否則輸出No;
輸入
第一行有一個整數0
#include <stdio.h>
int main()
{
int i, j, n, t;
int a[9] = {1,2,6,24,120,720,5040,40320,362880};
scanf("%d",&n);
while (n--)
{
scanf("%d",&t);
for (i = 8; i >= 0; i--)
{
if (t >= a[i])
t -= a[i];
}
if (t == 0)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}