编程用递归函数实现1+2+3+4+……+n,并显示所求的和,其中n从键盘输入。(期末考试题,20分)
时间: 2023-10-24 09:16:33 浏览: 80
好的,这是一个经典的递归问题。以下是一个实现:
```python
def sum_n(n):
if n == 0:
return 0
else:
return n + sum_n(n-1)
n = int(input("请输入n的值:"))
result = sum_n(n)
print("1到n的和是:", result)
```
首先,定义了一个名为 `sum_n` 的递归函数,接收一个整数参数 `n`,表示需要求和的范围。如果 `n` 等于 0,则返回 0;否则,递归调用 `sum_n` 函数,传入参数 `n-1`,并将其返回值加上 `n`。
然后,从键盘读取 `n` 的值,并调用 `sum_n` 函数,将其结果存储在变量 `result` 中。最后,打印出 `result` 的值作为答案。
注意:这个递归函数的效率并不高,因为它在每一次递归调用时都会创建新的函数帧,占用大量的内存。在实际应用中,最好使用循环方式实现更高效的计算。
相关问题
编程用递归函数实现1+2+3+4+……n,并显示所求的和,其中n从键盘输入
好的,可以用递归函数来实现这个功能。以下是一个Python的例子:
```python
def sum_recursive(n):
if n == 1:
return 1
else:
return n + sum_recursive(n-1)
n = int(input("请输入一个正整数n:"))
result = sum_recursive(n)
print("1+2+3+...+{}的和为:{}".format(n, result))
```
在这个例子中,我们定义了一个名为`sum_recursive`的递归函数,它接收一个参数`n`,表示要求的和的最大值。如果`n`等于1,则返回1;否则,返回`n`加上`sum_recursive(n-1)`的结果,其中`sum_recursive(n-1)`表示求1到`n-1`的和。
最后,我们从键盘输入一个正整数`n`,调用`sum_recursive`函数来计算1到`n`的和,并将结果打印出来。
希望能对你有所帮助!
c语言编程 从键盘输入一个正整数n,并用递归法写出 1+2+3+ …… +n的程序。
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
}
return n + sum(n - 1);
}
int main() {
int n, s;
printf("请输入一个正整数: ");
scanf("%d", &n);
s = sum(n);
printf("1+2+3+...+%d=%d\n", n, s);
return 0;
}
```
这个程序中,我们定义了一个递归函数 sum() 来计算 1+2+3+...+n 的值。当 n 等于 1 时,返回 1。否则,递归调用 sum() 函数,传入 n - 1,计算前 n - 1 个数的和,然后再加上 n,返回 n 和前 n - 1 个数的和。在主函数中,我们从键盘输入一个正整数 n,调用 sum() 函数计算 1+2+3+...+n 的值,然后输出结果。
阅读全文