public class test {
public static void main(String[] args) {
/**
*出题人:CN-Tom
* 编程题:连续整数之和为1000的共有几组?
* 求解如下:
* 按等差数列求和公式,当y为最小数,这i个整数的和为i*y+i*(i-1)/2
* 现求方程i*y+i*(i-1)/2 =1000的整数解
* 把方程变为y = 1000/i - (i-1)/2,如果y是整数这里不考虑小数以及负数,i必须能被1000整除 ,且1000/i 与(i-1)/2都必须是整数
* 设x=y*i为1000-i*(i-1)/2;即 x/i 为整数为正解。
*/
for(int i =0 ;i<50;i++){ //最大的联系数为50
float x = 1000-i*(i-1)/2;
float y = x/i;
if((int)y==y){
System.out.println(i);
}
}
}
/**
* 共四组
* 1 5 16 25
*/
}