题目1038:Sum of Factorials
参考代码:暴力法。数字限制太小。
import java.util.*;
public class Main{
public static void main(String arg[]){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int num = sc.nextInt();
//初始化阶乘数组
List<Integer> fnum = new ArrayList<Integer>();
fnum.add(1);
for(int i=1;i<10;i++)
{
fnum.add(i*fnum.get(i-1));
}
Collections.reverse(fnum);
//System.out.println(fnum);
//循环判断
int flag=0;
for(int i=0;i<fnum.size();i++){
if(num==0) break;
if(num>=fnum.get(i)){
num -= fnum.get(i);
}
if(num==0){
flag=1;
break;
}
}
System.out.println(flag==1?"YES":"NO");
}
}
}