Javaの配列に関連する質問に対する解決策をコーディングしようとしています。質問はこのように書きます:配列を使ったJavaタスクの解決
あなたは、長さnはの配列を与えられた0からにインデックス付けのnされている - 1配列の各要素は、0または1のどちらかであるあなただけに移動することができます最初にあなたは0 thの位置にいます。各移動では、次のいずれかの操作を行うことができます。
- 一歩前進または後退します。
- 正確な長さのジャンプを正確にm前方に作成します。一手に1又はX + メートル - あなたは、+ 1×、XにX位置から移動できる手段
。新しい位置には0が含まれている必要があります。また、n-1より大きな任意の位置に移動することもできます。
位置0から後方に移動することはできません。n - 1より大きな任意の位置に移動すると、ゲームに勝ちます。
ジャンプの長さと配列を考えると、ゲームに勝つことができるかどうかを判断する必要があります。ここで
は、例えば、テストケースは次のとおりです。
6 5 0 0 0 1 1 1 YES 6 3 0 0 1 1 1 0 NO
マイコード:
import java.io.*;
import java.util.*;
public class hcrkarryjump {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int a[]=new int[n];
for(int k=0;k<n;k++)
a[k]=sc.nextInt();
int i=0;
while(i<n){
if(a[i]==0)
i++;
if(a[i]==1){
if(a[i+1]==0 &&(i+m>=n-1))
System.out.println("YES");
else
System.out.println("NO");
}
}
}
}
コードは無限ループに入り、エラーがないかどうか私を修正してください。
ようこそStackOverflow。あなたの質問を改善するためのヒントについては、[ask]ページをお読みください。 大きな質問はコミュニティーからのより迅速で、より良い回答を提供する傾向があります – ochi
@ochi:質問はうまくいくと思います。問題は、無限ループがあることです。無限ループがどこに発生しているのかも分かります。 – Makoto
_「あなたは1つの移動から1つの移動に移動できることを意味します」_ - なぜ重要な情報を省略しましたか?どのように「1つの動きで」位置づけますか? –