package com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепую
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader rd =new BufferedReader(new InputStreamReader(System.in));
int m;
int time;
String ts=rd.readLine();
int t=Integer.parseInt(ts);
int sec=t*60;
if (sec<300){time=sec;}
else{m=sec/300;
int fivem=300*m;
time=sec-fivem;}
if (time<180){System.out.println("зелёный");}
else {if(time<240 & time>180) {System.out.println("жёлтый");}
else{if(time>240 & time<300){System.out.println("красный");}
}
}
}
}
hidden #1870119
8 уровень
что не так? почему не работает?
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RiccioMaster
1 октября 2018, 08:49
Попробуй так:
0
Александр
30 сентября 2018, 10:40
Привет.
Что выдаст твоя программа если ты введёшь 3, 4, 5 или 10?
0
RiccioMaster
30 сентября 2018, 09:41
Попробуйте упрощать код. Вот это:
Можно переписать так:
Можно вообще все переменные инициализировать в одной строке, тут уж смотрите, как лучше будет читаться.
Насчет кода: попробуйте через комментарии описать, что вы хотели сделать в каждой строке.
Вообще не проще было введенное число поделить на 5 и отсеять полные циклы переключения светофора, а полученный остаток сравнить и выявить текущее показание.
0
СанекExpert
30 сентября 2018, 08:37
попробуйте удалить эту часть кода и написать заново используя % вместо умножений и делений
P.S. Подсказка: будет лишь 3 проверки логическим оператором if, т.е. 6 строк
0
--------Master
29 сентября 2018, 23:40
Считываешь ты число целое, а не вещественное. Зачем его умножать на 60 и сравнивать со значениями, также умноженными на 60 - не особо понятно, но судя по всему, даже по значениям из примеров твой код не выдаст правильных ответов (тестировать-проверять не буду - это ты должен был сделать)
0