当前位置 :
【连续正整数(100分)一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:15=1+2+3+4+515=4+5+615=7+8请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列.】
1人问答
问题描述:

连续正整数(100分)

一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如:

15=1+2+3+4+5

15=4+5+6

15=7+8

请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列.

输入数据:一个正整数,以命令行参数的形式提供给程序.

输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印.如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列.此外,序列不允许重复,序列内的整数用一个空格分隔.如果没有符合要求的序列,输出“NONE”.

例如,对于15,其输出结果是:

12345

456

78

对于16,其输出结果是:

NONE

//看了一二楼的,都是用穷举法,效率不好.代码一句注释都没有,这是非常不好的习惯.

//还是我写的算法好

#include"stdio.h"

#include"stdlib.h"

voidmain(){

intnumber;

intisNone=1;

inti,j,n;

scanf("%d",&number);

for(i=number/2;i>1;i--){//i为连续个数

if(i%2==0){//偶数

if((number-i/2)%i==0){

n=(number-i/2)/i-i/2+1;//开始值

if(n

刘俊毅回答:
  #includeintmain(void){longn,p,t;longi,j;intc;printf("inputthenumber:");scanf("%ld",&n);while(n!=0){c=0;for(i=1;in){break;}}}if(c==0)...
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞