c程序递归函数求s=1+2+3+4+5+...+100
时间: 2023-08-28 18:04:36 浏览: 47
下面是一个递归函数,可以求解1到100的和:
```c
#include <stdio.h>
int sum(int n){
if(n == 1){
return 1;
}
else{
return n + sum(n - 1);
}
}
int main(){
int s = sum(100);
printf("s = %d\n", s);
return 0;
}
```
通过递归函数 `sum`,我们不断地将 `n` 减 1 并累加到 `n`,直到 `n` 减到 1,返回1,然后递归函数返回值不断相加,最终得到1到100的和。
相关问题
java 利用递归方法求s=1+3+5+...+(2n+1)
好的,让我来帮你解答这个问题。
可以使用递归方法求解 s=1+3+5+...+(2n+1)。
递归函数可以这样定义:
```
public static int sum(int n){
if(n == 0){
return 1;
}else{
return sum(n-1) + 2*n + 1;
}
}
```
在递归函数中,我们首先检查 n 是否等于 0。如果是,则返回 1,因为当 n=0 时,s=1。
否则,我们使用递归公式 s(n) = s(n-1) + 2n+1 来计算 s(n)。其中,s(n-1) 表示前一个奇数的和,2n+1 表示当前奇数。
这个递归函数会一直执行,直到 n=0 为止。当 n=0 时,递归函数停止,返回 s=1。
你可以在 main 函数中调用这个递归函数,计算出 s 的值。例如:
```
public static void main(String[] args) {
int n = 5;
int s = sum(n);
System.out.println("s = " + s);
}
```
输出结果为:
```
s = 36
```
因此,当 n=5 时,s=1+3+5+7+9+11=36。
通过递归函数计算S=1+2+3+4+5+6+N
好的,我来给您写一个递归函数来计算 S=1+2+3+4+5+6+N。
代码如下:
```
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
```
这个函数的原理是,当 n=1 时,返回 1,否则返回 n 加上 sum_recursive(n-1) 的结果。这样,每次递归都会减少 1,直到 n=1,递归结束。
例如,如果您调用 sum_recursive(6),它将返回 21,因为 1+2+3+4+5+6=21。
希望能帮到您!