java代码如下:
public static void main(String[] args) {
String result="NO";
Scanner sc = new Scanner(System.in);
int sum = sc.nextInt();
// (N - k(k-1)/2) / k
for ( int k=2; k < sum; k++) {
int x=(sum - k*(k-1)/2) / k; //开始值
int m= (sum - k*(k-1)/2) % k;
if (x<0){
result="NO";
break;
}
if (m!=0){
k++;
}else {
result="YES";
break;
}
}
System.out.println(result);
}
ConsecutiveInteger判断给定的整数n能否表示成连续的m(m>1)个正整数之和
原文:https://blog.51cto.com/9283734/2441274