Приветствую!
Долго решал эту задачу, даже откладывал, но в итоге пришел к такому решению.
Подставляя любое число - выводит всё правильно, но почему же ругается на желтый и зеленый?
Вот моя логика решения:
if (t > 0) //решил начать с этого, ведь время не может быть 0
далее идёт красный. почему? если начать с %3, то не дойдем до %4 и %5
это решение принято
if ((t % 5 >= 4) && (t % 5 < 5)) //соответствует условию. От 4 до <5 красный.
System.out.println("красный");
далее идёт абсолютная копия, только с условием желтого на %4
решение не принимает
else if ((t % 4 >= 3) && (t % 4 < 4)) //соответствует условию. От 3 до <4 желтый.
System.out.println("жёлтый");
далее идёт %3 <3
else if (t % 3 < 3)
System.out.println("зелёный");
Что не так с решением? Ведь если мы подставим любое число, ответ будет верным и вывод соответствующего условию цвета. Но от чего зеленый и желтый не принимаются? ПОМОГИТЕ!)))package com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепую
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
double t = sc.nextDouble();
if (t > 0){
if ((t % 5 >= 4) && (t % 5 < 5))
System.out.println("красный");
else if ((t % 4 >= 3) && (t % 4 < 4))
System.out.println("жёлтый");
else if (t % 3 < 3)
System.out.println("зелёный");
sc.close();}
}
}