NYOJ-91-阶乘之和

来源:互联网 发布:手机怎么申请做淘宝客 编辑:程序博客网 时间:2024/04/29 16:37

阶乘之和
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;
输入
第一行有一个整数0<m<100,表示有m组测试数据;
每组测试数据有一个正整数n<1000000;
输出
如果符合条件,输出Yes,否则输出No;
样例输入
2
9
10
样例输出
Yes
No

水题,后悔去做它
水题,后悔去做它
水题,后悔去做它
后悔的事说三遍

代码

#include<stdio.h>#include<string.h>#include<stack>#include<math.h>#include<iostream>#include<algorithm>using namespace std;long long int a[10];void dabiao(){//打表存10以内阶乘到数组    int flag=1;    for(int i=1; i<=10; i++)    {        flag=flag*i;        a[i-1]=flag;    }}int main(){    dabiao();    int m;    scanf("%d",&m);    while(m--)    {        int n;        scanf("%d",&n);        for(int i=9; i>=0; i--)            if(n>=a[i])                n=n-a[i];        if(n==0)            printf("Yes\n");        else            printf("No\n");    }    return 0;}
0 0
原创粉丝点击