问题标题: 酷町堂:1199 阶乘之和

0
0
已解决
徐紫尘
徐紫尘
高级光能
高级光能
#include<iostream>
#include<cmath>
using namespace std;
long long jc(long long m){
    long long sum=1;
    for(long long i=1;i<=m;i++){
        sum*=i;
    }
    return sum;
}
long long Judge(long long n){
    long long sum=0;
    for(int i=1;i<=sqrt(n);i++){
        sum+=jc(i);
        if(sum==n){
            return true;
        }
    }
    return false;
}
int main(){
    long long m,n,s=0;
    cin>>m;
    for (long long i=1;i<=m;i++){
        cin>>n;
        if(Judge(n)){
            cout<<"YES"<<endl;
        }
        else{
            cout<<"NO"<<endl;
        }
    }
    return 0;
}

WA40分,求找错


0
已采纳
杜智宸
杜智宸
中级光能
中级光能

定义:a[9]={1,2,6,24,120,720,5040,40320,362880}(阶乘的结果)

输入t

while(t--)

输入n

加上

循环(int i=8;i>=0;i--){
            如果(n>=s[i]){
                n-=s[i];
                如果(结果为0){//n==0
                    cout<<"YES"<<endl;
                    break;
                }
            }
        }
        如果(结果不为0)
            cout<<"NO"<<endl;
}

完结撒花

0
我要回答