用C++代码写通过递推方式求两百以内的完全平方数的程序
时间: 2024-11-25 10:17:29 浏览: 14
在C++中,你可以通过递归的方式来编写一个计算并输出两百以内所有完全平方数的程序。这里是一个简单的示例:
```cpp
#include <iostream>
// 定义递归函数,用于检查是否是完全平方数
bool isPerfectSquare(int num, int sqrt = 0) {
if (sqrt * sqrt == num) {
return true;
}
else if (sqrt * sqrt > num) {
return false;
}
// 使用尾递归优化
return isPerfectSquare(num, sqrt + 1);
}
int main() {
for (int i = 1; i * i <= 200; ++i) { // 遍历1到45(因为45^2=2025,超过范围)
if (isPerfectSquare(i)) {
std::cout << i * i << " 是完全平方数\n";
}
}
return 0;
}
```
在这个程序中,`isPerfectSquare` 函数接受一个整数 `num` 和一个临时变量 `sqrt`(初始化为0),然后递归地检查是否 `sqrt` 的平方等于 `num`。如果相等,则返回 true;如果不等,且 `sqrt` 的平方大于 `num`,则返回 false。递归过程会在 `sqrt` 的值加1时停止,避免无限循环。
阅读全文