题目描述:
一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。
例如,对于15,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于16,其输出结果是:
NONE
评分标准:
程序输出结果是否正确。
算法思想:
比较简单,这里不再赘述
代码如下:
/**//************************************************************************
* 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:
* 15=1+2+3+4+5
* 15=4+5+6
* 15=7+8
* 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列
************************************************************************/
#include <stdio.h>
#include <VECTOR>
using namespace std;
class PositiveInteger
...{
public:
vector <int> m_vecBegin;//the begin integer of the sequence
vector <int> m_vecEnd; //the end integer of the sequence
public:
PositiveInteger()
...{
m_vecBegin.clear();
m_vecEnd.clear();
}
~PositiveInteger()...{}
void GetIntegerSequence(int n);
void display(int n);
};
void PositiveInteger::GetIntegerSequence(int n)
...{
int i,sum,begin;
i=begin=1;
sum=0;
while(begin<=n/2)
...{
sum+=i++;
if(sum==n)
...{
m_vecBegin.push_back(begin);
m_vecEnd.push_back(i-1);
i=++begin;
sum=0;
}
else if(sum>n)
...{
i=++begin;
sum=0;
}
}
}
void PositiveInteger::display(int n)
...{
int size=m_vecBegin.size();
if(size==0)
...{
printf(\" NONE \");
}
else
...{
for(int i=0;i<size;i++)
...{
printf(\" %d=%d\",n,m_vecBegin.at(i));
for(int j=m_vecBegin.at(i)+1;j<=m_vecEnd.at(i);j++)
printf(\"+%d\",j);
}
printf(\" \");
}
}
//显示菜单
void show_menu()
...{
printf(\"--------------------------------------------- \");
printf(\"input command to test the program \");
printf(\" i or I : input n to test \");
printf(\" q or Q : quit \");
printf(\"--------------------------------------------- \");
printf(\"$ input command >\");
}
void main()
...{
char sinput[10];
int n;
show_menu();
scanf(\"%s\",sinput);
while(stricmp(sinput,\"q\")!=0)
...{
if(stricmp(sinput,\"i\")==0)
...{
printf(\" please input an integer:\");
scanf(\"%d\",&n);
PositiveInteger obj;
obj.GetIntegerSequence(n);
obj.display(n);
}
//输入命令
printf(\"$ input command >\");
scanf(\"%s\",sinput);
}
}
本篇文章来源于《考试中国》[www.kswchina.com] ;原文链接地址:http://it.kswchina.com/rjsp/cj/cx/458412.html

林当时
- 粉丝: 114
- 资源: 1万+
最新资源
- 250115.pages
- 大厂FPGA AXI verilog源代码:企业级应用配置,含4个Master与10个Slave,IC设计验证及SOC开发学习资源,清晰代码架构附带资料 ,大厂FPGA AXI verilog源代码:
- 基于STM32设计的自动追光系统(完整系统源码资料等).zip
- 光子晶体波导中的comsol法诺共振现象解析,Comsol模拟光子晶体波导中的法诺共振特性研究,comsol光子晶体波导法诺共振 ,comsol;光子晶体;波导;法诺共振,光子晶体波导的法诺共振研究
- 基于No.905 S7-200 PLC与组态王组态的温度PID控制技术在加热炉电阻炉中的应用研究,基于No.905 S7-200 PLC与组态王组态的温度PID控制在加热炉电阻炉中的应用研究,No.9
- 脉聊交友程序网站源码全套源码带app源码+安装教程+APP编译视频教程
- 基于西门子S7-200 PLC与MCGS组态的自动门控制系统设计:优化组态与PLC协同应用的研究,西门子S7-200PLC与MCGS组态相结合的自动门控制系统设计与实现,58#基于西门子S7-200P
- 基于BP神经网络的复杂系统动态行为建模:一阶时滞系统的精确拟合方法,基于BP神经网络的复杂时滞一阶系统动态特性拟合:应用案例与实践方法,BP神经网络拟合一阶+时滞系统 (1)Train.mlx、Tes
- C#上位机控制系统开发:PLC通讯与美观曲线展示,便捷工艺编辑界面与灵活的通信方式,C#上位机控制系统开发:PLC通讯与485通讯集成,工艺编辑界面优化,曲线展示与数值游标可视化,C#开发上位机控制系
- 基于A星算法与动态窗口法的融合路径规划算法:可自定义地图与起点终点位置及未知障碍物位置的MATLAB实现,A星算法与动态窗口法融合路径规划:可自定义地图及起始目标点位置、避障功能的Matlab实现,a
- python-3.13.2 64位 For Windows 安装包
- 表面等离激元:微纳光子学与能量调控的桥梁技术,表面等离激元:物理现象深度解析与应用研究,表面等离激元 ,表面等离激元; 物理现象; 光学应用; 电磁波交互; 纳米技术,表面等离激元技术及其应用研究
- 基于Comsol模拟的等离子体BIC研究与应用,COMSOL研究框架下的等离子体BIC物理现象探究,comsol等离子体BIC ,comsol; 等离子体; BIC,Comsol模拟:等离子体BIC
- python-3.12.4 64位 For Windows 安装包
- COMSOL相控阵三维聚焦探头:7*7阵元可调焦距声场动画展示模型,基于COMSOL技术的7阵元三维相控阵聚焦探头:可调焦距与动态声场效果展示,comsol相控阵三维聚焦探头 7*7阵元三维相控阵聚焦
- COMSOL下二氧化钒VO2在不同温度的相变设置及其在可见光、近红外和太赫兹波段的特性研究,不同温度下二氧化钒VO2相变材料在可见光、近红外及太赫兹波段的COMSOL设置研究,comsol不同温度下相
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


