牛客-序列和
序列和
http://www.nowcoder.com/questionTerminal/46eb436eb6564a62b9f972160e1699c9
解题思路:利用数学中的等差数列公式,我们假设元素个数为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"); } }