首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

类与对象-连续自然数和,该如何解决

2013-01-25 
类与对象-连续自然数和描述 Description对一个给定的自然数M,求出所有的连续的自然数段(连续个数大于1),这

类与对象-连续自然数和
描述 Description

对一个给定的自然数M,求出所有的连续的自然数段(连续个数大于1),这些连续的自然数段中的全部数之和为M。
例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。

要求:(1)要求用类的方法解题

定义一个类Number,类里面有三个私有的数据成员begin和end和sum

(2)要求在类中设计一个构造函数,此构造函数接受一个整数作为参数,此整数即为在主程序中接收的自然数M,这个M用来初始化sum

(3)要求在程序中设计一个成员函数solve(),此函数利用sum来求自然数begin和end,并且在函数中直接显示begin和end的值


样例输入
10000
样例输出
18 142
297 328
388 412
1998 2002

求怎样用类解题~
[解决办法]
假设输入一个数10.
外层循环从1开始,到5.
begin=1,然后sum累加,end 从begin(1)开始。
 sum=sum+end;(1=0+1) 1<10  end++ -->2
 sum=sum+end;(3=1+2) 3<10  end++ -->3
 sum=sum+end;(6=3+3) 6<10  end++ -->4 
 sum=sum+end;(10=6+4) 10=10  里层循环结束。
判断sum=M,输出 begin=1,end-1=4.


外层循环再从 begin=2,sum=0开始累加,
 sum=sum+end;(2=0+2) 2<10  end++ -->3
 sum=sum+end;(5=2+3) 5<10  end++ -->4
 sum=sum+end;(9=5+4) 9<10  end++ -->5 
 sum=sum+end;(14=9+5) 14》10  里层循环结束。
 不匹配,里层循环结束,(没有输出)。

外层循环从begin=3,sum=0 再累加,判断
。。。。。。。

基本过程就是这样。
感觉应该有更精准的办法,我这个数据大时,效率不高。

热点排行