本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。 函数接口定义: int+sum(+int+n+); 该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证输
时间: 2023-12-21 13:30:27 浏览: 146
以下是两种递归计算1+2+3+…+n的和的函数实现:
1. 使用if-else语句实现递归
```c
int sum(int n) {
if (n <= 0) { // 基线条件
return 0;
} else { // 递归条件
return n + sum(n - 1);
}
}
```
2. 使用三目运算符实现递归
```c
int sum(int n) {
return n <= 0 ? 0 : n + sum(n - 1);
}
```
相关问题
本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。\n\n函数接口定义:\nint sum( int n );\n该函数对于传入的正整数n返回1+2+3+…+n的和;若n不是正整数则返回0。题目保证
传入的n不超过10000。
实现思路:
使用递归的方式计算1+2+3+…+n的和,递归的终止条件是n等于1,此时返回1。否则,递归调用sum(n-1)计算1+2+3+…+(n-1)的和,再加上n即可得到1+2+3+…+n的和。
代码实现:
使用C语言本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。
以下是使用递归计算1+2+3+...+n的和的C语言代码:
```c
#include <stdio.h>
int sum(int n) {
if (n == 0) {
return 0;
} else {
return n + sum(n-1);
}
}
int main() {
int n = 5;
int result = sum(n);
printf("1+2+3+...+%d = %d", n, result);
return 0;
}
```
在函数sum中,如果n为0,则返回0,否则返回n加上sum(n-1)的结果。在main函数中,我们调用sum函数计算1到n的和,并将结果打印出来。运行上述代码,输出结果为:
```
1+2+3+...+5 = 15
```
因此,1到5的和为15。
阅读全文