小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。
例如:半径的平方如果为25
例如:半径的平方如果为25
优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。
C++ Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include<stdio.h>;
#include<stdlib.h> #include<math.h> int main(void) { float r; int i, j, count = 0; printf("请输入圆的半径平方\n"); scanf("%f", &r); for (i = 0; i <= sqrt(r); i++) { for (j = 0; j <= sqrt(r); j++) { if ((i * i + j * j) == r && i != 0 && j != 0) //非坐标轴上的点 count += 4; else if ((i * i + j * j) == r && (i == 0 || j == 0)) //坐标轴上的点 count += 2; } } printf("%d", count); system("pause"); } |