牛客練習-優雅的點
阿新 • • 發佈:2018-11-26
小易有一個圓心在座標原點的圓,小易知道圓的半徑的平方。小易認為在圓上的點而且橫縱座標都是整數的點是優雅的,小易現在想尋找一個演算法計算出優雅的點的個數,請你來幫幫他。
例如:半徑的平方如果為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; }