读书人

输入一个正整数n输出全部和为n的连续

发布时间: 2012-10-13 11:38:17 作者: rapoo

输入一个正整数n,输出所有和为n的连续整数序列

思路:

用两个变量记录一段区间,begin,end,sum表示该区间中所有数据的和[begin,end),如何sum==n,那么就打印该区间,然后sum-=low,low++,如何sum<n,那么sum+=end,end++,如果sum>n,那么sum-=low,low++.

参考代码如下:

public void printSeq(int begin,int end){for(int i=begin;i<end;i++){System.out.print(i+" ");}System.out.println();}public void findSeq(int num){if(num<3)return;int sum=1;int begin=1;int end=2;int mid=num/2;while(begin<=mid){if(sum==num){printSeq(begin, end);sum-=begin;begin++;}if(sum<num){sum+=end;end++;}else if(sum>num){sum-=begin;begin++;}}}public static void main(String[] args){FindSumSequence find=new FindSumSequence();find.findSeq(15);}}

读书人网 >其他相关

热点推荐