「GESP202609 二级]直角三角形
2026-09-18 21:26:40
发布于:湖北
13阅读
0回复
0点赞
终于写完了
#include <bits/stdc++.h> // 万能头文件,包含所有标准库
using namespace std; // 使用标准命名空间
int main() {
double a, b, c; // a=数列第1项, b=数列第2项, c=数列上限
cin >> a >> b >> c; // 依次读入三个浮点数
int cnt = 3; // cnt 表示"当前第几项",从第3项开始计(因为前两项已给)
double d = sqrt(a * a + b * b); // 先算出第3项 = sqrt(a² + b²)
if (a > c) { cout << 1; return 0; } // 若第1项已超过上限,直接输出 1
if (b > c) { cout << 2; return 0; } // 若第2项已超过上限,直接输出 2
while (sqrt(a * a + b * b) <= c) { // 只要"当前新算出的项"不超过上限就继续递推
d = sqrt(a * a + b * b); // 计算当前新项(作用同循环条件里的计算)
a = b; // 前两项向后滚动:a←原来的b
b = d; // b←刚算出的新项
cnt++; // 项数 +1
}
cout << cnt; // 输出第几项开始超过上限
return 0;
}
这里空空如也




有帮助,赞一个