1. 程式人生 > >牛客練習-優雅的點

牛客練習-優雅的點

小易有一個圓心在座標原點的圓,小易知道圓的半徑的平方。小易認為在圓上的點而且橫縱座標都是整數的點是優雅的,小易現在想尋找一個演算法計算出優雅的點的個數,請你來幫幫他。
例如:半徑的平方如果為25
優雅的點就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12個點。 

輸入描述:

輸入為一個整數,即為圓半徑的平方,範圍在32位int範圍內。


 

輸出描述:

輸出為一個整數,即為優雅的點的個數

示例1

輸入

25

輸出

12
#include<iostream>
#include<cmath>
using namespace std;
int cmp(int x,int n)
{
    int s = n-x*x;
    int m = (int)sqrt(s);
    if(m*m==s)return 1;
    return 0;
}
int main()
{
    int n;
    cin>>n;
    int len = (int)sqrt(n);
    int cnt = 0;
    for(int i = 1; i <=len; i++)
    {
        if(cmp(i,n))cnt++;
    }
    cout<<cnt*4<<endl;

    return 0;
}