给定一个正整数n(1<=n<=100),采用递归法求s=1+(1+2)+(1+2+3)+……(1+2+3+……+n)。用c语言编写
时间: 2024-10-01 14:05:49 浏览: 35
第 N 个泰波那契数(记忆+递归)1
在C语言中,你可以通过递归函数来计算这个序列。这种序列是一个等差数列的求和,可以利用数学公式直接简化,但是对于教学和理解递归思想非常有帮助。下面是一个简单的递归函数实现:
```c
#include <stdio.h>
// 递归函数,计算从1到n的和
int sum(int n) {
// 基线条件:当n等于1时,返回n
if (n == 1)
return 1;
else // 递归情况:n大于1时,返回当前项加上前一项之和
return n + sum(n - 1);
}
int main() {
int n;
printf("请输入一个正整数n(1 <= n <= 100):");
scanf("%d", &n);
// 检查输入是否在范围内
if (n >= 1 && n <= 100) {
int result = sum(n);
printf("1+2+3+...+%d 的和为:%d\n", n, result);
} else {
printf("输入错误!请重新输入1到100之间的整数。\n");
}
return 0;
}
```
在这个程序中,`sum`函数会一直调用自身,每次将当前项n加到上一次的结果上,直到n减小到1为止。
阅读全文