zp2358.cpp
来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 60 行
CPP
60 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include <stdio.h>
//#include <fstream.h>
int sm,s,b[1000010],a[15];
void dfs(int m)
{
if (m==s)
{
if (sm<=1000000)
b[sm]=1;
}
else
{
for (int i=0;i<2;i++)
{
sm+=i*a[m];
dfs(m+1);
sm-=i*a[m];
}
}
}
int main(int argc, char* argv[])
{
//ofstream fout("out2358_p.txt");
int i,n;
for (i=0;i<=1000000;i++)
b[i]=0;
s=1;
i=1;
while (i<=1000000)
{
i*=s;
a[s++]=i;
}
sm=0;
a[0]=1;
dfs(0);
b[0]=0;
while (scanf("%d",&n) && n>=0)
{
if (b[n])
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?