读书人

求邻近数的和等于这个数值的全部数

发布时间: 2013-07-16 22:38:05 作者: rapoo

求相邻数的和等于这个数值的全部数

今天群里问了一个面试题,这里记录一下,欢迎指点,提出更优方案:

?

题目:

输入一个数值,求出这个数值所包含的相邻数的和等于这个数值的全部数,并且全部输出 例:输入数 15

输出:15=1+2+3+4+5

? ? ? ? ? ?15=4+5+6

? ? ? ? ? ?15=7+8 求思路

?

public static void countNum( int num){int rs = 0;for(int i=1,j=1;i<=(num/2)+1;i++){if(rs<num){rs += i;}if(rs > num){rs -= j;j++;if(rs>num){i--;}}if(rs == num){System.out.println(j+" + ... +  "+i +" = "+num);rs -= j;j++;}}}    public static void main(String[] args) {        long a = System.currentTimeMillis();        countNum(100000000);        long b = System.currentTimeMillis();        long c = b-a;        System.out.println("总时间:"+c+"毫秒");    }    

?

思路:1.数字依次从1 开始向后 连续相加:1+2+3+...

? ? ? ? ? ?2.没加一次,结果集和比较的数字相比,等于就打印,小于 继续加,大于 就减去最前面的一个数

? ? ? ? ? ?3.循环完毕,这里就只打印前末 数字

?

?

?

? ?

读书人网 >其他相关

热点推荐