解题思路:利用数学中的等差数列公式,我们假设元素个数为i,等差d为1,和为N。我们可以求出a1.这样我们就可以遍历L(长度在L-100的最小)。只要能够求得一个合法的a1就是找到答案了,就可以进行输出,否则就是找不到
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int N=scan.nextInt();
int L=scan.nextInt();
for(int i=L;i<=100;i++){
if((2*N-(i-1)*i)%(2*i)==0&& (2*N-(i-1)*i)/(2*i)>=0){
int a1=(2*N-(i-1)*i)/(2*i);
for(int j=0;j<i-1;j++){
System.out.print(a1+j+" ");
}
System.out.print(a1+i-1);
return;
}
}
System.out.print("No");
}
}
京公网安备 11010502036488号