题目描述
如果一个整数n是Triangle numbers,则表示n个点能组成一个等边三角形。
如下图所示表示的是前6个等边三角形, 那么1,3,6,10......是Triangle numbers,而2,4,5......不是Triangular numbers。
现给出一个整数n,问n是否是一个Triangular numbers。
输入
首先输入一个整数N,表示有N组测试实例。
每组实例输入一个整数n( 1 <= n <= 500)。
输出
每组实例输出一行,如果n是Triangular numbers输出YES,否则输出NO。
样例输入 Copy
3
1
2
3
样例输出 Copy
YES
NO
YES
三角数:三角数即正整数前n项和: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78,..n(n+1)/2 ,从1+2+3+…+n谈起在建筑工地上堆积许多圆木条,从侧面看去它们堆积成三角形的样子。
满足n*(n+1)/2即可
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while (n--)
{
int t;
int sign = 0;
cin >> t;
for (int i = 1; i <= t; i++)
{
if (t == i*(i + 1) / 2)
{
sign = 1;
break;
}
}
if (sign == 1)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}