//刚开始就搞错了,以为是要连续数的阶乘和,原来只是阶乘相加和相等就可以了!
#include "iostream"
using namespace std;
int main()
{
int i, n;
double ans[11];
ans[0] = 1;
for (i = 1; i < 11; i++)
ans[i] = ans[i-1] * i;
while (cin >> n && n >= 0)
{
if (n == 0)
{
cout << "NO" << endl;
continue;
}
for (i = 10; i >= 0 && n > 0; i--)
if (n >= ans[i])
n -= ans[i];
if (n == 0)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
zoj 2358 Sum of Factorials
最新推荐文章于 2017-06-24 10:40:00 发布