Сервис быстрых ответов от искусственного интеллекта
Вопрос пользователя:
Ответ нейросети:
public class Program {
public static void main(String[] args) {
while (true) {
checkReport();
System.out.println("\nНажмите любую клавишу для продолжения работы. Нажмите \"ESC\" для выхода из программы.");
if (System.console().readKey(true).getKeyCode() == KeyEvent.VK_ESCAPE) {
break;
} else {
System.out.println("Подготовка работы с новым журналом...\n");
}
}
}
/**
* Основной метод проверки журнала
*/
private static void checkReport() {
try {
System.out.println("Введите количество замеряемых дней:");
int days = Integer.parseInt(System.console().readLine());
if (days <= 0) {
System.out.println("\nNO");
return;
}
System.out.println("\nВведите данные журнала за " + days + " дней:");
int[] originalJournal = Arrays.stream(System.console().readLine().split(" "))
.mapToInt(Integer::parseInt)
.toArray();
if (originalJournal.length != days) {
System.out.println("\nNO");
return;
}
if (Arrays.stream(originalJournal).anyMatch(x -> x < 0 && x != -1 || x == 0)) {
System.out.println("\nNO");
return;
}
int[] recoveryJournal = new int[originalJournal.length];
recoverJournal(originalJournal, recoveryJournal);
boolean isJournalValid = isJournalCorrect(recoveryJournal);
if (isJournalValid) {
System.out.println("\nYES");
detailRecord(recoveryJournal);
} else {
System.out.println("\nNO");
}
} catch (Exception e) {
System.out.println("\nПохоже, что были данные были введены в неверном формате. Попробуйте загрузить отчёт ещё раз.");
}
}
/**
* Метод восстановления журнала
*/
private static void recoverJournal(int[] originalJournal, int[] recoveryJournal) {
for (int i = 0; i < originalJournal.length; i++) {
if (originalJournal[i] != -1) {
recoveryJournal[i] = originalJournal[i];
} else {
if (i == 0) {
recoveryJournal[i] = 1;
} else {
recoveryJournal[i] = recoveryJournal[i - 1] + i + 1;
}
}
}
}
/**
* Проверка корректности восстановленного журнала
*/
private static boolean isJournalCorrect(int[] recoveryJournal) {
for (int i = 1; i < recoveryJournal.length; i++) {
if (recoveryJournal[i] != recoveryJournal[i - 1] + i + 1) {
return false;
}
}
return true;
}
/**
* Метод вывода данных о динамике выпадения снега по дням
*/
private static void detailRecord(int[] recoveryJournal) {
int[] detailJournal = new int[recoveryJournal.length];
for (int i = 0; i < recoveryJournal.length; i++) {
if (i == 0) {
detailJournal[i] = recoveryJournal[i];
} else {
detailJournal[i] = recoveryJournal[i] - recoveryJournal[i - 1];
}
}
System.out.println(Arrays.toString(detailJournal));
}
}
Напишите нам, если в вопросе есть ваши персональные данные (yasnoponyatno24@yandex.ru)
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.