シーケンスは、正の整数Nと長さLを合計し、長さがL以上で、合計が正確にNである連続した負でない整数を見つけます。答えは複数あるかもしれませんが、一番短いものを探す必要があります。

正の整数Nと長さLを見つけ、長さがL以上の連続した非負の整数を見つけます。それらの合計は正確にNです。答えは複数あるかもしれませんが、一番短いものを探す必要があります。
たとえば、N = 18 L = 2:
5 + 6 + 7 = 18
3 + 4 + 5 + 6 = 18
はすべて満たされますが、より短い5 6 7が出力されます。

入力の説明:
入力データには1行が含まれます:2つの正の整数N(1≤N≤1000000000)、L(2≤L≤100)

出力の説明:
この連続した非負の整数を、小から大まで、スペースで区切って出力し、行末にはスペースを入れません。そのようなシーケンスがない場合、または見つかったシーケンスの長さが100を超える場合、出力
例1
入力
18 2
出力
5 6 7

 

 

Lから100までの条件を満たすa1を検索し、ある場合は出力a1、それ以外の場合は出力No

import java.util.Scanner;
public class Main {
public static void main(String [] args){
Scanner in = new Scanner(System.in);
while(in .hasNext()){
int N = in .nextInt();
int L = in .nextInt();
ブールフラグ= false;
for(int i = L; i <= 100; i ++){
if((2 * N + i-i * i)%(2 * i)== 0){
flag = true;
int a1 =(2 * N + i-i * i)/(2 * i);
(a1 <0)の場合は続行します。
for(int j = 0; j <i-1; j ++){
int a = a1 + j;
System.out.print(a + "");
}
System.out.println(a1 + i-1);
ブレーク;
}
}
if(flag == false)
System.out.println( "No");
}
}
}

おすすめ

転載: www.cnblogs.com/wen-/p/12671396.html