Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Решить задачу по java

Платон Кривовичев Ученик (213), на голосовании 1 год назад
Задача звучит так:
Биологи давно изучают вопросы свиста высокогорных раков. В процессе исследования они ведут, так называемый, журнал свиста, в который ежеминутно записывается свистит ли рак на горе или нет. Если рак свистит то записывается WHISTLE если нет, то записывается NO_WHISTLE .

Известно, что за время наблюдейний, рак свистел ровно два раза. Определите сколько минут прошло между его свистками.
Голосование за лучший ответ
Посада Ядерная Гуру (4769) 1 год назад
 import java.util.Scanner; 

public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int count = 0;
int minutes = 0;
for (int i = 0; i < n; i++) {
String input = scan.next();
if (input.equals("WHISTLE")) {
count++;
if (count == 2) {
System.out.println(minutes);
return;
}
minutes = 0;
} else {
minutes++;
}
}
}
}
 Пример входных данных: 


10
WHISTLE
NO_WHISTLE
NO_WHISTLE
WHISTLE
NO_WHISTLE
NO_WHISTLE
NO_WHISTLE
NO_WHISTLE
NO_WHISTLE
NO_WHISTLE
Ожидаемый выход: 2
Платон КривовичевУченик (213) 1 год назад
А можно как то сделать что бы мы в начале не вводили кол-во записей?
Посада Ядерная Гуру (4769) Платон Кривовичев, да без бэ
 import java.util.Scanner;  
  
public class Main {  
    public static void main(String[] args) {  
        Scanner scan = new Scanner(System.in);  
        int count = 0;  
        int minutes = 0;  
        while (scan.hasNextLine()) {  
            String input = scan.nextLine();  
            if (input.equals("WHISTLE")) {  
                count++;  
                if (count == 2) {  
                    System.out.println(minutes);  
                    return;  
                }  
                minutes = 0;  
            } else {  
                minutes++;  
            }  
        }  
    }  
} 
 
Рома Аверин Знаток (323) 1 год назад
Для решения данной задачи необходимо создать программу, которая будет просматривать журнал свиста, и подсчитывать, сколько минут прошло между двумя свистками.

Пример решения:

public class WhistleCounter {
public static void main(String[] args) {

// Создаем журнал свиста с последовательностью записей
String[] whistleLog = new String[] {"NO_WHISTLE", "NO_WHISTLE", "NO_WHISTLE", "WHISTLE", "NO_WHISTLE", "NO_WHISTLE", "NO_WHISTLE", "WHISTLE"};

int whistleCount = 0;
int minutesBetween = 0;

// Проходим по всем записям журнала
for (String logEntry : whistleLog) {
// Если запись равна WHISTLE, то увеличиваем счетчик свистков
if (logEntry.equals("WHISTLE")) {
whistleCount++;
}

// Если счетчик равен 2, значит мы нашли второй свисток
if (whistleCount == 2) {
// Выводим результат и прекращаем цикл
System.out.println("Minutes between whistles: " + minutesBetween);
break;
}

// Если счетчик не равен 2, то увеличиваем счетчик минут
minutesBetween++;
}
}
}
Дмитрий Минск Оракул (56823) 1 год назад
Скажи,а чем лучше жава чем питон?
ОракулОракул (62095) 1 год назад
Ничем. Это просто другой язык для других потребностей.
Дмитрий Минск Оракул (56823) Просветленный, я просто думаю что выбрать, и тоже решил учить жабу
Александр Искусственный Интеллект (301732) 1 год назад
какое отношение к джаве?
ОракулОракул (62095) 1 год назад
Решить же на ней)
Dmitrii DNK Мастер (1255) 1 год назад
 import java.util.Scanner; 

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int firstWhistle = 0;
int secondWhistle = 0;
boolean foundFirstWhistle = false;
for (int i = 0; i < n; i++) {
String s = scanner.next();
if (s.equals("WHISTLE")) {
if (!foundFirstWhistle) {
firstWhistle = i;
foundFirstWhistle = true;
} else {
secondWhistle = i;
}
}
}
System.out.println(secondWhistle - firstWhistle);
}
}
Похожие вопросы