欢迎来到天天文库
浏览记录
ID:13606339
大小:32.00 KB
页数:3页
时间:2018-07-23
《连续正整数的算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构:连续正整数的算法实现方法题目描述: 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。 输入数据:一个正整数,以命令行参数的形式提供给程序。 输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重
2、复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出“NONE”。 例如,对于15,其输出结果是: 12345 456 78 对于16,其输出结果是: NONE 评分标准: 程序输出结果是否正确。 算法思想: 比较简单,这里不再赘述 代码如下: /**//************************************************************************ *一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: *15=1+2+3+4+
3、5 *15=4+5+6 *15=7+8 *请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列 ************************************************************************/ #include #include usingnamespacestd; classPositiveInteger ...{ public: vectorm_vecBegin;//thebegini
4、ntegerofthesequence vectorm_vecEnd;//theendintegerofthesequence public: PositiveInteger() ...{ m_vecBegin.clear(); m_vecEnd.clear(); } ~PositiveInteger()...{} voidGetIntegerSequence(intn); voiddisplay(intn); }; voidPositiveInteger::GetIntegerSeque
5、nce(intn) ...{ inti,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; } elseif(sum>n) ...{ i=++begin; sum=0; } } } voidPositiveInteger::display
6、(intn) ...{ intsize=m_vecBegin.size(); if(size==0) ...{ printf("NONE"); } else ...{ for(inti=0;i7、菜单 voidshow_menu() ...{ printf("---------------------------------------------"); printf("inputcommandtotesttheprogram"); printf("iorI:inputntotest"); printf("qorQ:quit"); printf("---------------------------------------------"); printf("$inputcomm8、and>"); } voidmain() ...{ charsinput[10]; intn; show_menu(); scanf("%s",sinput); while(stricmp(sinput,"q")!=0) ...{ if(stricmp(sin
7、菜单 voidshow_menu() ...{ printf("---------------------------------------------"); printf("inputcommandtotesttheprogram"); printf("iorI:inputntotest"); printf("qorQ:quit"); printf("---------------------------------------------"); printf("$inputcomm
8、and>"); } voidmain() ...{ charsinput[10]; intn; show_menu(); scanf("%s",sinput); while(stricmp(sinput,"q")!=0) ...{ if(stricmp(sin
此文档下载收益归作者所有