编写一个函数求1加到100要求用递归调用的方法实现,并写一个主函数输出结果
时间: 2024-03-10 17:49:01 浏览: 49
好的,下面是代码:
```c++
#include <iostream>
using namespace std;
int recursiveSum(int n) {
if (n == 1) { // 递归基
return 1;
} else {
return n + recursiveSum(n - 1); // 递归调用
}
}
int main() {
int sum = recursiveSum(100);
cout << "1 + 2 + ... + 100 = " << sum << endl;
return 0;
}
```
输出结果为:
```
1 + 2 + ... + 100 = 5050
```
注意,递归调用要设置递归基,否则会陷入死循环或者栈溢出的问题。
相关问题
用C语言编写一个函数求1加到100要求用递归调用的方法实现,并写一个主函数输出结果
好的,以下是代码实现:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n - 1);
}
}
int main() {
int result = sum(100);
printf("1加到100的结果是:%d\n", result);
return 0;
}
```
递归调用的思路是:求1加到n的和,等价于n加上1加到n-1的和。因此,在sum函数中,如果传入的参数n等于1,那么直接返回1;否则,返回n加上sum(n-1)的结果。
在主函数中,调用sum函数求出1加到100的结果,并输出到控制台。
【问题描述】使用递归编写一个函数fac实现求n的阶乘,并编写主函数调用fac函数,验证函数的正确性。
好的,下面就是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
int fac(int n) {
if (n == 0) {
return 1; // 0 的阶乘为 1
} else {
return n * fac(n - 1); // 递归调用求解 n-1 的阶乘
}
}
int main() {
int n = 5;
cout << n << " 的阶乘为:" << fac(n) << endl; // 输出 5 的阶乘
return 0;
}
```
这个函数使用了递归的思想,当 `n` 为 0 时,直接返回 1,否则递归调用 `fac(n - 1)` 并将结果乘以 `n`,得到 `n` 的阶乘。在主函数中,我们定义了一个整型变量 `n`,并输出它的阶乘,验证了 `fac` 函数的正确性。