把一个整数写成几个连续几个整数的和(用c++)

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:28:14
写了一个程序,0ERROR,不知道那为什么 输入一个整数后不输出结果。麻烦高人指点,小弟我是初学者,程序有些混乱望见谅
#include<iostream>
using namespace std;
int main()
{int m;
cin>>m;
int n,x,z,sum=0;
for(n=1;n<=m/2;n++)
{x=n;
while(sum<=m)
{sum=sum+x;
x++;

if (sum==m)
{cout<<m<<"="<<n;

z=n;
for(z=n;z<=x;z++)
{cout<<"+"<<z;}
cout<<endl;
}
}
}
return 0;}

首先,并不是所有整数都可以满足你说的条件,
我把你的程序改了你下,你先看看结果
3=1+2
6=1+2+3
10=1+2+3+4
15=1+2+3+4+5
21=1+2+3+4+5+6
28=1+2+3+4+5+6+7
36=1+2+3+4+5+6+7+8
45=1+2+3+4+5+6+7+8+9
55=1+2+3+4+5+6+7+8+9+10
66=1+2+3+4+5+6+7+8+9+10+11
78=1+2+3+4+5+6+7+8+9+10+11+12
91=1+2+3+4+5+6+7+8+9+10+11+12+13
105=1+2+3+4+5+6+7+8+9+10+11+12+13+14
120=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15
136=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16
153=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17
171=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18
190=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19
210=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20
231=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21
253=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22
276=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23

#include<iostream>
using namespace std;
int main()
{
int m;
// ci