给一个非负整数,判断这个数是不是相互不同的非负整数的阶乘的和。
此为别的文章看到的 https://www.jianshu.com/p/ca4d745e7d57
题目: 给一个非负整数,判断这个数是不是相互不同的非负整数的阶乘的和。如6 = 3!;7 = 3! + 1!;但5 不是相互不同的非负整数的阶乘的和。
int main(void) { int num; printf("请输入一个非负整数:"); scanf("%d", &num); int i = 1; int flag = 1; while (num>1) { if (((num / i)*i) == num) //判断是否可以整除 i num /= i; else { num--; if (((num / i)*i) == num) // 连续两次都不能整除,就不是了 num /= i; else { flag = 0; break; } } i++; } if (flag) printf("Yes\n"); else printf("No\n"); system("pause"); return 0; }