编写函数,函数入参为一个正整数n,求1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+4+...+n)的和
时间: 2023-11-15 14:06:20 浏览: 55
3nplus1_3n+1_
这道题可以使用两种方法来解决,一种是使用for循环,另一种是使用递归。下面分别介绍这两种方法的实现。
方法一:使用for循环
```c
#include <stdio.h>
int sum(int n) {
int i, j, s = 0;
for (i = 1; i <= n; i++) {
int t = 0;
for (j = 1; j <= i; j++) {
t += j;
}
s += t;
}
return s;
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1+(1+2)+(1+2+3)+...+(1+2+3+...+n)=%d\n", sum(n));
return 0;
}
```
方法二:使用递归
```c
#include <stdio.h>
int sum(int n) {
if (n == 1) {
return 1;
} else {
return sum(n - 1) + n * (n + 1) / 2;
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1+(1+2)+(1+2+3)+...+(1+2+3+...+n)=%d\n", sum(n));
return 0;
}
```
阅读全文