和为n 连续正数序列 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。
package algorithm; public class Algorithm2Test { public static void main(String[] args) { sequence(5465898); } static void sequence(long l) { for (int num = 2 ;num <l/2-1; num++) { pring(l,l/num,num); } } static void pring(long l,long l2,long num) { if(l2-(num-1)/2<=0) return; long check=0; StringBuilder strPrint =new StringBuilder(); if(num%2==0) { for(long i=l2-(num-1)/2 ;i<l2+num/2;i++) { strPrint.append(i + " + "); check+=i; } if(check+l2+num/2==l) { strPrint.append(l2+num/2); System.out.println(strPrint.toString()); } }else { for(long i = l2-(num-1)/2 ;i<l2+num/2;i++) { strPrint.append(i + " + "); check+=i; } if(check+l2+num/2==l) { strPrint.append(l2+num/2); System.out.println(strPrint.toString()); } } } }