C语言求1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值,n为键盘输入的一个整数

如题所述

一楼的错了 明显要递归调用函数 楼上的程序只能计算1+2+.....n 的值
下面这个程序才是正确的

#include<stdio.h>

int main()
{
int fun(int n),sum=0;

int n;

scanf("%d",&n);

for(int i=n;i>=1;i--){
sum+=fun(i);
}

printf("%d",sum);

}

int fun(int n)
{

if(n==1)
return 1;
else
return n+fun(n-1);
}

没有打注释,有哪里看不懂的可以追问
呃 其实不用递归也是可以的 我新编了一个可能更容易看懂一点

#include<stdio.h>

int main()
{
int n,sum=0,i,j;

scanf("%d",&n);

for(i=n;i>=1;i--){
for(j=i;j>=1;j--){
sum+=j;
}
}

printf("%d",sum);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-28
#include<stdio.h>
void main(){
int i,n,sum=0;
printf("输入n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++) sum+=i*(i+1)/2;
printf("%d",sum);
system("pause"); //程序暂停,可以没有}
第2个回答  2011-11-28
#include<stdio.h>
#include<math.h>
main(){
int n,i,j=0,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ j=j+i;
s=s+j;
}
printf("%d",s);
getch();
}本回答被提问者采纳

c语言s=1+(1+2)+(1+2+3)+…+(1+2+3+……+n)的值先编写一个求1+2+...
{ int sum=0;for(int i=1;i<=n;i++)sum=sum+i;return sum;} int main(){ int sum,n;sum=0;printf("请输入n:\\n");scanf("%d",&n);for(int i=1;i<=n;i++)sum=sum+sumn(i);printf("%d",sum);}

编程求1+(1+2)+(1+2+3)+……+(1+2+3…… +n), n的值由键盘输入。要求使...
int main(){ int i,n,m=0,s=0;printf("Please input the number:\\n");scanf("%d",&n);printf("n=%d\\n",n);for(i=1;i<n+1;i++){ m+=i;s+=m;} printf("s=%d\\n",s);return 0;}

编程求1+(1+2)+(1+2+3)+……+(1+2+3…… +n), n的值由键盘输入。要求使...
令 a1 = 1, a2 = 1 + 2, a3 = 1+2+3 ... aN = 1+2+3...+n 根据等差数列前n项和公式可知, aN 的通项公式为 aN = (N^2 + N)\/2 题目所求即为 aN的前N项和 容易观察,前N项和为 (1^2 + 2^2 + 3^3 + ... + n^2 + 1 + 2 + 3 + ... + n) \/2 根...

...正整数n,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
static void Main(string[] args){ Console.Write("请输入一个大于或等于1的整数:n="); var s = Console.ReadLine(); int n; if (int.TryParse(s, out n)) { Console.WriteLine(string.Format("计算结果:s={0}", calculate(n))); } else { Console....

如何用c语言编程 求1+(1+2)+(1+2+3)+(1+2+3+4)……+(1+2+3+……+n
include<stdio.h>int main(){ int i,j,an,sum,n; scanf("%d",&n); for(i=1,sum=0;i<=n;i++) { for(j=1,an=0;j<=i;j++) an+=j; sum+=an; } printf("%d",sum); return 0;}

编程:从键盘输入正整数n,输出1+(1+2)+(1+2+3)+...+(1+2+3+...+n...
sum+=i;return sum;} void main(){ int i,n,sum=0;scanf("%d",&n);for(i=1;i<=n;++i)sum+=sum_n(i);printf("sum = %d\\n",sum);}这样只是最简单的一种,效率不高,实际情况做的时候通常是把表达式整理成一个多项表达式来直接做运算,比如说你的那几个1+(1+2)...你可以...

编程实现求Sum=1+(1+2)+(1+2+3)+(1+2+3+4)+ …… +(1+2+3+4+ … +...
Sub test()n = InputBox("输入一个整数")su = 0 For i = 1 To n * 1 For j = 1 To i - 1 su = su + j Next su = su + i Next Print su End Sub

c语言计算S = 1+ (1+2) +(1+2+3) … (1+2 …+ N).
scanf("%d",&N); for(i=1;i<=N;i++) { sum+=func(i); } printf("S= %d\\n",sum); return 0;}示例运行结果:1 S= 1 2 S= 4 3 S= 10 10 S= 220 以上的程序就是计算S = 1+ (1+2) +(1+2+3) … (1+2 …+ N)的。

从键盘输入正整数n,输出1+(1+2)+(1+2+3)+……(1+2+3+……+n)的值
一楼采用的逆向思维,下面是正向的,从上面的数字可以看到规律:n个1 + (n-1)个2 + 。。。+1个nstatic void Main(string[] args) { int n = 0; n = Convert.ToInt32(Console.ReadLine()); int result = sum(n); Console.WriteLi ...

...然后求s=1+(1+2)+(1+2+3)+……+(1+2+3+……n)的值。
include<iostream> int main(){ int s=0,t=0,n;cin>>n;for(int i=1;i<=n;i++){ s=s+i;t=t+s;} cout<<"S(n)="<<t<<endl;return 0;}

相似回答