描述
小明有n个正三角形,他想把所有的三角形组成一个大的正三角形。但小明不知道n个三角形能否恰好组成一个大的正三角形。所以小明想请你帮忙。
输入
多组输入数据,文件以EOF结尾。
每行一个正整数n。
输出
如果n个小三角形能够组成一个正三角形,就输出“YES”,否则输出“NO”。
样例输入
1
2
3
2
3
样例输出
YES
NO
YES
NO
YES
(注:空心也算)
递推:a1=1
a2=3
a3=6
a4=10
a5=15
#include<iostream>
#include<cstring>
#define MX 10000
using namespace std;
int a[MX];
int main()
{
int n=1;
int m=0,i;
memset(a,false,sizeof(a));
while(cin>>n)
{
a[1]=1;
if(n==1){cout<<"YES"<<endl;continue;}
for(i=2;i<=n;i++)
a[i]=a[i-1]+i;
for(i=1;i<n;i++)
if(a[i]==n)break;
if(i==n)cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}