Я пытаюсь закодировать решение вопроса, связанного с массивами в Java. Вопрос звучит так:Решение задач Java с использованием массивов
Вам дается массив длины п, индексированный от 0 до п - 1. Каждый элемент массива является 0 или 1. Вы можете перемещать только к индекс, который содержит 0. Сначала вы находитесь на позиции 0 th. В каждом ходу вы можете выполнить одно из следующих действий:
- Пройдите на один шаг вперед или назад.
- Сделайте скачок точно длины m вперед.
Это означает, что вы можете перейти от позиции х к х + 1, х - 1 или х + м в один ход. Новая позиция должна содержать 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
_ «Это означает, что вы можете перемещаться из положения в один или один шаг» _ - Почему вы опустили критическую информацию? Позиция ЧТО ЧТО «за один шаг»? –