NYOJ 91 阶乘之和

来源:互联网 发布:查看linux snmp信息 编辑:程序博客网 时间:2024/05/21 07:58

描述

给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No;

输入

第一行有一个整数0

输出

如果符合条件,输出Yes,否则输出No;

样例输入

2
9
10

样例输出

Yes
No

#include<iostream>using namespace std;int main(){    int m,n;    cin>>m;    while(m--)    {        cin>>n;        int sum=n;        int s;        for(int i=9;i>=1;i--)        {            s=1;            for(int j=i;j>=1;j--)            {                s*=j;            }            if(s<=sum)            {            sum-=s;            }            if(sum==0) break;        }        if(sum==0)            cout<<"Yes"<<endl;        else            cout<<"No"<<endl;     }     return 0;}
原创粉丝点击