Всем привет. Сейчас завершил 5й уровень. И появился вопрос. Для простоты понимания сформулирую в виде задачки.
Вводим дату (пускай будет целое число от 1го до 365) и назовем day. эта day - первый день, когда начинается график работы, скажем на производстве, от которого начинается вот такой отсчет: 2дня работаем, 3 отдыхаем, затем 1 день работаем, 2 отдыхаем и пошло по новой (2 рабочих, 3 отдыха, 1 рабочий, 2 отдыха). И вводим ещё один день (пускай будет i, тоже от 1 до 365). Так надо узнать i - выходной или рабочий?
Циклы понятно, как применить при цикличности, а при не стандартных повторениях? есть ли для этого методы? Если есть, то прошу подсказать. А то сам придумал себе задачку и уже 2ой день она покоя мне не дает. Ниже, что удалось придумать... но не работает)))
public static boolean positiveWeek(int day, int i) {
boolean n = false;
day = day + 1; // здесь учитываются первые 2 рабочих дня и false - значит рабочий
if (day >= i)
return n
else{
for (int a = 1; a == i; a++){ // это я цикл сделал (где значения a - от балды взял) :)
n = true;
day = day + 3; // идут 3 выходных;
if (day >= i)
break;
day = day + 1; // затем 1 рабочий
n = false;
if (day >= i)
break;
day = day + 2; // 2 выходных
n = true;
if (day >= i)
break;
day = day + 2; // 2 рабочих
n = false;
if (day >= i)
break;
}
return n;
}
Вроде логически правильно всё расписал, но всегда возвращает n = false (в самом начале кода). Меняю на true, возвращает true. Также очень буду благодарен, другим отличающимся от моего решениям. Для саморазвития. Спасибо.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ