已知一个整数,找出连续数字之和为他的个数。比如9,2+3+4=9;4+5=9,答案为2。当时说出思路,然后具体实现的时候没有完全写出来,当时精神不佳。回来后实现了:
public class TestNum {
public static void main(String[] args) {
int n = getCount(11);
System.out.println(n);
}
public static int getCount(int num){
if(num < 3){
return 0;
}
int[] a = new int[num];
for(int i=0; i<num; i++){
a[i] = i+1;
}
int result = 0;
int sum = a[0] + a[1];
int i = 0;
int j = 1;
while(true){
System.out.println("sum: " + sum + "; num: " + num);
if(sum < num){
j++;
sum += a[j];
}else if(sum > num){
sum -= a[i];
i++;
}else{
System.out.println("i=" + i + "; j=" + j);
result++;
j++;
sum +=a[j];
}
if(i + j > num - 2){
break;
}
}
return result;
}
}