C语言用递归算法实现,输入整数 n(n>0),求 1+3+5+7....+(2*n-1)的和
时间: 2024-05-06 10:17:55 浏览: 33
可以用递归函数来实现这个功能。具体的实现方法如下:
```c
#include <stdio.h>
int sum(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("1+3+5+...+(2*%d-1)=%d\n", n, sum(n));
return 0;
}
int sum(int n) {
if (n == 1) { // 当n等于1时,直接返回1
return 1;
} else {
return 2 * n - 1 + sum(n - 1); // 当n大于1时,递归调用sum函数,并将结果累加
}
}
```
这里的递归函数 `sum` 用来计算从1到n的奇数和。当n等于1时,直接返回1,否则递归调用sum函数,将结果累加返回。
需要注意的是,在使用递归的时候,需要设置递归终止条件,否则会出现无限递归导致程序崩溃的情况。在本题中,当n等于1时,我们就可以直接返回1。
相关问题
用递归算法求1*2*3*…+*n+的值。c语言
以下是使用递归算法求1*2*3*...*n的值的C语言代码示例:
```c
#include <stdio.h>
int recursiveMultiply(int n) {
if (n == 1) {
return 1;
} else {
return n + recursiveMultiply(n - 1);
}
}
int main() {
int n = 5;
int result = recursiveMultiply(n);
printf("The result is: %d\n", result); // 输出:The result is: 15
return 0;
}
```
在上面的代码中,我们定义了一个递归函数`recursiveMultiply`,它接受一个整数参数n,并返回1*2*3*...*n的值。如果n等于1,则递归终止,返回1;否则,递归调用`recursiveMultiply`函数来计算n-1的结果,并将n与结果相加。
在主函数中,我们定义了一个变量n,并将其赋值为5。然后,我们调用`recursiveMultiply`函数来计算1*2*3*...*5的值,并将结果打印出来。
斐波拉契数列如下 1、1、2、3、5、8 编写程序,用户输入整数n,程序输出读数列的第n项.要求使用C语言递归算法。 输入 7 输出 13
以下是使用递归算法实现斐波那契数列的C语言代码:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n;
printf("请输入斐波那契数列的项数:");
scanf("%d", &n);
printf("第%d项的值为%d\n", n, fibonacci(n));
return 0;
}
```
运行程序,输入7,输出结果为:
```
请输入斐波那契数列的项数:7
第7项的值为13
```