题解 | #Sum of Factorials#

Sum of Factorials

https://www.nowcoder.com/practice/42cb1c7f7344466b8cb1710cb12d06b1

#include<bits/stdc++.h>
using namespace std;
int jie(int x){
    int n=x;
    if(x==0) return 1;
    while(n>1){
        n--;
        x=x*n;
    }
    
    return x;
}
int dfs(int x,int sum,int n){
    if(sum==x) return 1;
    if(n==10)
    return -1;
    n++;
    return max(dfs(x,sum+jie(n),n),dfs(x,sum,n));
}

int main(){
    int x;
    while(cin>>x){
        if(x<0) break;
        if(x==0) {cout<<"NO"<<endl;continue;}
        int sum=0;int flag=0;
        flag=dfs(x,sum,-1);
        if(flag==1)
        cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
        
    }
    
    
    
    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务