例1写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数。分别用 递归算法和循环迭代法
时间: 2024-09-08 19:04:08 浏览: 63
当然可以,这里我会分别介绍如何使用递归算法和循环迭代法实现这个`PrintN`函数。
**递归算法**:
递归是一种函数自己调用自己的技术,对于这个需求,我们可以定义一个基础情况(当N等于1时),然后处理一般情况(N大于1):
```cpp
#include <iostream>
// 递归版 PrintN 函数
void printRecursively(int N) {
if (N == 1) { // 基础情况:打印1
std::cout << N << " ";
} else { // 一般情况:递归调用自身,打印N并递减N
printRecursively(N - 1);
std::cout << N << " ";
}
}
int main() {
int N;
std::cout << "请输入一个正整数: ";
std::cin >> N;
printRecursively(N); // 调用函数
return 0;
}
```
**循环迭代法**:
在循环迭代中,我们通常使用一个for或while循环来遍历从1到N的范围:
```cpp
#include <iostream>
// 循环版本的 PrintN 函数
void printIteratively(int N) {
for (int i = 1; i <= N; i++) { // 遍历1到N
std::cout << i << " ";
}
}
int main() {
int N;
std::cout << "请输入一个正整数: ";
std::cin >> N;
printIteratively(N); // 调用函数
return 0;
}
```
现在你有了两种实现方式,你可以根据个人偏好选择适合的方法。这两种方法的时间复杂度都是O(N),区别在于递归可能会有额外的栈空间消耗。
阅读全文