C++中输出1+(1+2)+(1+2+3++n)

2025-02-22 09:56:10
推荐回答(5个)
回答1:

#include "iostream.h"

long DoSum(int n)
{
long sum = 0;
while(n>0)
{
for(int i=1;i<=n;i++)
{
sum = sum + i;
}
n--;
}
return sum;
}

void main()
{
int n,i,j=2;
cout<<"请输入n:";
cin>>n;
cout<<"1+";
while(j<=n)
{
cout<<"(";
for(i=1;i<=j;i++)
cout< cout<<"\b";
cout<<")";
cout<<"+";
j++;
}
cout<<"\b";
cout<<"="<}

请输入n:7
1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5)+(1+2+3+4+5+6)+(1+2+3+4+5+6+7)=84
Press any key to continue
这次可以了。。。希望结束此问题。。。

回答2:

---
--
-

↑ 我用这种形势帮你完成,你想横的话自己修改,因为控制台看不了那么宽 这样更直观

输出结果形势:

请输入数:
10
1 1+2 1+3 1+4 1+5 1+6 1+7 1+8 1+9 1+10
1 1+2 1+3 1+4 1+5 1+6 1+7 1+8 1+9
1 1+2 1+3 1+4 1+5 1+6 1+7 1+8
1 1+2 1+3 1+4 1+5 1+6 1+7
1 1+2 1+3 1+4 1+5 1+6
1 1+2 1+3 1+4 1+5
1 1+2 1+3 1+4
1 1+2 1+3
1 1+2
1
结果:230
Press any key to continue

代码:

#include
#include

int jg=0; //便于理解 jg=结果

void jddg(int num) //jddg=简单递归
{
if(num>0)
{
for (int i=1;i<=num;i++)
{
if(i==1){
printf("%d ",i);
jg=jg+1;
}else{
printf("1+%d ",i);}
if(i==num) printf("\n");

jg=jg+i;
}

num--;
jddg(num);//递归
}

}

void main()
{
int a;
cout<<"请输入数:\n";
cin>>a;
jddg(a);
cout<<"结果:"<}

回答3:

下面语句加在sum+=i;的前面
if(i == 1)
cout << i;
else
{
cout << "(";
for(int j = 1; j <= i; j++)
{
cout << j;
if(j != i)
cout << "+";
}
cout << ")";
}
if(i != n)
cout << "+";

顺便说一下,LZ的计算代码很“漂亮”

回答4:

递归
从n开始递归,递归到1时输出

回答5:

1111212