题解 | #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;
}


查看8道真题和解析