AcWing 3481. 阶乘的和 JAVA
原题链接
简单
作者:
sowei
,
2021-05-18 01:07:46
,
所有人可见
,
阅读 280
import java.util.*;
public class Main {
public static void main(String args[]) {
int[] f = new int[10];
f[0] = 1;
f[1] = 1;
Set<Integer> set = new HashSet<>();
for(int i = 2; i < 10; i++) {
f[i] = f[i - 1] * i;
}
int n = f.length;
for(int i = 1; i < 1 << n; i++) {
int sum = 0;
for(int j = 0; j < n; j++) {
if((i >> j & 1) == 1) {
sum += f[j];
}
}
set.add(sum);
}
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int x = sc.nextInt();
if(x < 0) break;
if(set.contains(x)) System.out.println("YES");
else System.out.println("NO");
}
}
}