c语言,用递归算法求1+2+3+…+n
时间: 2023-07-02 18:08:01 浏览: 115
可以使用递归算法来求1+2+3+…+n的和,具体实现如下:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n - 1);
}
}
int main() {
int n = 10;
printf("1+2+3+...+%d=%d\n", n, sum(n));
return 0;
}
```
在上面的代码中,`sum`函数使用递归方式计算1+2+3+…+n的和,递归终止条件是n等于1时,返回1。当n大于1时,函数返回n加上`sum(n-1)`的结果,即递归调用函数自身来计算前n-1个数的和。在`main`函数中,我们调用`sum`函数来计算1到10的和,并输出结果。
相关问题
用c语言实现递归算法求2+22+222+2222+22222......
可以使用以下的递归函数来实现求解2、22、222、2222、22222等序列:
```c
#include <stdio.h>
void printSequence(int n) {
if (n == 1) {
printf("2 ");
return;
}
printSequence(n - 1);
for (int i = 0; i < n; i++) {
printf("2");
}
printf(" ");
}
int main() {
int n;
printf("请输入要打印的序列长度:");
scanf("%d", &n);
printSequence(n);
return 0;
}
```
这个程序通过递归调用 `printSequence` 函数,每次递归调用时将参数 `n` 减1,并在递归结束后打印出一串由数字2组成的字符串。
请注意,该程序假设输入的序列长度 `n` 是一个正整数。
请用c语言请用递归算法,求 1+2+3+4+…+n ,
可以使用以下代码实现:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n - 1);
}
}
int main() {
int n;
printf("请输入n的值:");
scanf("%d", &n);
printf("1到n的和为:%d\n", sum(n));
return 0;
}
```
运行程序后,输入n的值,即可输出1到n的和。递归的实现思路是不断利用函数自身来实现任务的分解和调用,直到达到最小的任务规模,然后不断回溯汇总调用结果并返回。在本例中,递归函数sum用于计算1到n的和,当参数n为1时,直接返回1;当n大于1时,将n与1到n-1的和相加并返回结果。
阅读全文