用c语言编写递归函数求小于等于n的所以正整数之和
时间: 2024-02-13 17:01:52 浏览: 34
好的,以下是用C语言编写的递归函数,可以求小于等于n的所有正整数之和:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return n + sum(n-1);
}
}
int main() {
int n, result;
printf("请输入一个正整数n:");
scanf("%d", &n);
result = sum(n);
printf("1~%d的所有正整数之和为:%d\n", n, result);
return 0;
}
```
这个函数的思路是,当n等于1时,返回1;否则,返回n加上1到n-1的所有正整数之和,这个和可以通过递归调用sum()函数来得到。当n等于1时,递归结束,返回1。
相关问题
c语言用递归函数求n!
可以使用递归函数来求n的阶乘,具体代码如下:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的阶乘是%d\n", n, factorial(n));
return 0;
}
```
递归函数`factorial`的作用是计算n的阶乘。如果n等于0或1,则直接返回1;否则,返回n乘以`factorial(n-1)`的结果。在`main`函数中,读入一个正整数n,并调用`factorial`函数来计算n的阶乘,并输出结果。
c语言用递归函数求n!,函数类型是double
下面是用递归函数求n!的C语言代码:
```c
#include <stdio.h>
double factorial(int n) {
if (n == 0) {
return 1;
}
else {
return n * factorial(n-1);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
double result = factorial(n);
printf("%d! = %.0f\n", n, result);
return 0;
}
```
这里定义了一个名为`factorial`的递归函数,用于计算n的阶乘。如果n为0,则返回1;否则,返回n乘以`(n-1)`的阶乘。在主函数中,通过用户输入的方式获取n,然后调用`factorial`函数计算结果,并输出到屏幕上。由于阶乘的结果可能非常大,因此我们使用`double`类型来存储结果。