C语言编写一个递归函数,计算从键盘上输入的任一整数的自然数之和。 如输入n,也就是求n = 1+2+3+.....+n
时间: 2023-06-13 07:06:59 浏览: 62
好的,以下是实现递归函数计算自然数之和的C语言代码:
```c
#include <stdio.h>
int sum(int n);
int main()
{
int n;
printf("请输入一个整数n:");
scanf("%d", &n);
printf("1+2+3+...+%d=%d\n", n, sum(n));
return 0;
}
int sum(int n)
{
if (n == 1) // 递归终止条件
return 1;
else
return n + sum(n - 1); // 递归调用
}
```
在程序中,我们定义了一个 `sum` 函数,用于计算自然数之和。其中,递归终止条件是当 `n` 等于 1 时,函数返回 1,否则函数调用自身,将 `n` 减 1,再加上 `n` 的值,最终得到自然数之和。
在 `main` 函数中,我们通过 `scanf` 函数从键盘上读入一个整数 `n`,并调用 `sum` 函数计算从 1 到 `n` 的自然数之和。最后将结果输出到屏幕上。
相关问题
C语言:从键盘输入一个正整数n, 计算该数的各位数之 和并输出(定义一个新函数,递归法)
好的,下面是一个使用递归法实现的 C 语言程序,用于从键盘输入一个正整数 n,计算该数的各位数之和并输出:
```c
#include <stdio.h>
int sum_of_digits(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("该数的各位数之和为:%d\n", sum_of_digits(n));
return 0;
}
int sum_of_digits(int n) {
if (n < 10) {
return n;
} else {
return n % 10 + sum_of_digits(n / 10);
}
}
```
在这个程序中,我们同样使用了一个名为 `sum_of_digits` 的新函数来计算一个正整数的各位数之和。该函数使用递归的方式来计算各位数之和。具体来说,如果输入的数小于10,则直接返回该数;否则,该函数将输入的数除以10并取余数,将余数加到该数的各位数之和中,然后递归调用 `sum_of_digits` 函数并传递该数除以10的商作为参数。当输入的数变成一位数时,递归过程结束,并将各位数之和返回给调用者。
在 `main` 函数中,我们同样使用 `scanf` 函数从键盘输入一个正整数 `n`,并将其作为参数传递给 `sum_of_digits` 函数。最后,我们将 `sum_of_digits` 函数的返回值打印到终端上。
c语言编写一个递归函数求1+2+3+…+n
好的,以下是 C 语言代码实现:
```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);
int s = sum(n);
printf("1+2+3+...+%d=%d\n", n, s);
return 0;
}
```
递归函数 `sum()` 的实现是求 $1+2+3+...+n$ 的关键。如果 `n` 等于 1,那么返回 1,否则返回 `n` 加上 `sum(n-1)`。在 `main()` 函数中,先读入 `n`,然后调用 `sum()` 函数计算 1 到 `n` 的和,并输出结果。