Правильно ли я вначале использовал "вычисление остатка деления" для упрощения дальнейших действий ?
Я, чтобы не заморачиваться и, чтобы оптимизировать код, с самого начала высчитываю остаток деления введенного числа на 5. Цикл состоит из 5 минут, т.е. если я ввожу, например, 36 - меня не интересуют полные циклы из 5 минут, которые уже прошли (7 раз по 5 мин), меня интересует только то, что осталось (1 мин.). То есть 36%5 = 1(зеленый). И какое бы я число не подставил - мне важно знать только остаток деления на 5. 188%5=3(желтый). Ну и вначале я тоже перевел дробь в целое число, это никак не влияет на результат. Все работает и прошло проверку. Я просто смотрел в комментах, все заморачиваются с кодом, очень трудные коды, никто не делает вначале вычисление остатка деления. Я подумал, что так как я сделал - это самое логичное решение.
Но возможно я не прав?
И не является ли ошибкой вот это: user = (int)(user%5);? - Я подумал, что мне не важны десятые, просто точно указал, что желтый начинается ровно с 3 и т.д.??
import java.util.Scanner;
public class Solution {
public static void main(String[] args) throws Exception {
double user;
Scanner input = new Scanner(System.in);
user = input.nextDouble();
user = (int)(user%5);
if (user >= 0 && user < 3) {
System.out.println("зелёный");
} else {
if (user >= 3 && user < 4) {
System.out.println("жёлтый");
} else {
System.out.println("красный");
}
}
}
}
Виталий
9 уровень
Правильно ли я вначале использовал "вычисление остатка деления" для упрощения дальнейших действий
Архивный
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
NodeOneExpert
15 января 2019, 06:17
да все так делают, но лучше тут не сполерить - дать людям возможность самим решить.
0
NodeOneExpert
15 января 2019, 06:13
есть возможность прикрепить задачу... есть возможность использовать \<code\> - используйте, не зря же разрабы это все сделали для нас.
0
Виталий
15 января 2019, 06:36
Понял, исправлюсь)
0
Sergey MorozExpert
15 января 2019, 03:23
Насчет "правильно / неправильно", с моей точки зрения так: код рабочий? рабочий. понятен автору и коллегам? понятен. покрыт тестами? покрыт. Следовательно, считать неправильным пока не найден баг, - некорректно :)
0
Sergey MorozExpert
15 января 2019, 03:17
Я точно так же решил с тем же подходом, придерживаясь концепции чем проще решение, тем понятнее его реализация и тем стабильнее код.
Единственно, не кастовал к инту остаток деления, но проверки проводил по целым 3, 4, 5.
По идее, привести остаток к целому выглядит интересно - ведь по сути нам нет разницы, будь то остаток допустим 3,54, да хоть 3,9995687 или просто 3 - по любому желтый как ни крути.
+1
Виталий
15 января 2019, 06:35
да, я о том же) Спасибо за ответ)
0