直角三角形
描述
三条边的边长均为整数的直角三角形称为整数直角三角形。给定一个整数n,求斜边的边长不超过n的所有整数直角三角形的个数。
输入
输入有多行。第一行是一个整数T,表示有T个测试数据。接下来的T行,每行有一个正整数n。
输出
每个测试数据的输出有两行,第一行先输出测试数据的编号,格式如case#i,其中i为测试数据编号。第二行是一个整数,表示对应的整数直角三角形的个数。
输入样例 1
4 5 10 20 30
输出样例 1
case#1 1 case#2 2 case#3 6 case#4 11
提示
HINT 时间限制:200ms 内存限制:64MB
#include<bits/stdc++.h>
using namespace std;
int countRightTriangles(int n) {
int count = 0;
for (int a = 1; a <= n; a++) {
for (int b = a; b <= n; b++) {
int c_squared = a * a + b * b;
int c = (int)sqrt(c_squared);
if (c * c == c_squared && c <= n) {
count++;
}
}
}
return count;
}
int main() {
int T;
scanf("%d", &T);
for (int i = 1; i <= T; i++) {
int n;
scanf("%d", &n);
printf("case#%d\n", i);
int count = countRightTriangles(n);
printf("%d\n", count);
}
return 0;
}
如有侵权,联系删除
1865

被折叠的 条评论
为什么被折叠?



