Codeforces--47A--Triangular numbers

题目描述:
A triangular number is the number of dots in an equilateral triangle uniformly filled with dots. For example, three dots can be arranged in a triangle; thus three is a triangular number. The n-th triangular number is the number of dots in a triangle with n dots on a side. . You can learn more about these numbers from Wikipedia (http://en.wikipedia.org/wiki/Triangular_number).

Your task is to find out if a given integer is a triangular number.
输入描述:
The first line contains the single number n (1 ≤ n ≤ 500) — the given integer.
输出描述:
If the given integer is a triangular number output YES, otherwise output NO.
输入:
1
2
3
输出:
YES
NO
YES
题意:
问你一个数是不是属于Triangular numbers
题解
跟着公式走一遍就OK
代码:

#include
#include
#include
#include
using namespace std;

const int maxn = 500000 + 5;
int vis[maxn];

void init(){
    memset(vis,0,sizeof(vis));
    for(int i = 1; i <= 500; i ++){
        int t = i * (i + 1) / 2;
        vis[t] = 1;
    }
}

int main(){
    int n;
    init();
    while(scanf("%d",&n)!=EOF){
        if(vis[n] == 1) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

你可能感兴趣的:(暴力枚举,算法)