#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
这次可以了。。。希望结束此问题。。。
---
--
-
↑ 我用这种形势帮你完成,你想横的话自己修改,因为控制台看不了那么宽 这样更直观
输出结果形势:
请输入数:
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<<"结果:"<
下面语句加在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的计算代码很“漂亮”
递归
从n开始递归,递归到1时输出
1111212