📄 一个正整数有可能可以被表示为n个连续正整数之和.txt
字号:
/*
题目描述:一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,
每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,
按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,
序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。
*/
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
void main(int argc,char *argv[])
{
int number;
int *temp;
number=atoi(argv[1]);
// cout<<"请输放一个整数,"<<endl;
//cin>>number;
temp=new int [number/2];
for(int i=0;i<number/2;i++)
temp[i]=0;
cout<<endl;
for(i=1;i<=number/2+1;i++)
{ int sum=0,k=0;
for(int j=i;j<=number/2+1;j++)
{
sum+=j;
temp[k]=j;
k++;
if(sum>=number)
break;
}
if(sum==number)
{
k=0;
while(temp[k]!=0)
{
cout<<temp[k]<<" ";
k++;
}
cout<<"is sun"<<number<<endl;
}
for(int d=0;d<number/2;d++)
temp[d]=0;
}
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -