本文主要是介绍HHU 1015 圆上的点点点点点点点点点点点点点点(水题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:假设圆的圆心位于(0,0),半径为r,圆的"某积"公式为S=r2,请问"某积"为s的圆上有多少个以整数为坐标的点?
思路:想办法优化双重循环就直接单重循环中间判断,但需要注意非0数开平方会有正负两个值,需要+2。
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;int main(){long long s;while(cin>>s){long long cnt=0;double r=sqrt(s*1.0);for(int a=(int)-r;a<=(int)r;a++){int b=sqrt(s-a*a);if(b*b==s-a*a){if(b==0)cnt++;if(b!=0)cnt+=2;//cout<<"a"<<a<<"b"<<b<<endl;}}cout<<cnt<<endl;}return 0;
}
这篇关于HHU 1015 圆上的点点点点点点点点点点点点点点(水题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!