Задачка. Нужно написать числовую функцию - Free Pascal
Формулировка задачи:
Нужно написать функцию, которая бы принимала числа от 1 до 12 и выдавала бы результат по этой таблице:
1=0
2=1
3=2
4=0
5=1
6=2
7=0
8=1
9=2
10=0
11=1
12=2
Т.о. если скормить функции число 8, то она должна вернуть 1
Пробовал так:
Но для некоторых чисел (8,12 и ещё может пару) это не работает.
Мозг плавится, чувствую что есть некое математическое уравнение решающие эту задачу в оду строчку, но не могу допереть какое?
Но это неэтично
mes:=7; repeat if (mes mod 4)=0 then mes:=0 else if mes>4 then mes:=mes-3 else mes:=mes-1; until mes<=2;
Пока сделал так:
case mes of 1:mes:=0; 2:mes:=1; 3:mes:=2; 4:mes:=0; 5:mes:=1; 6:mes:=2; 7:mes:=0; 8:mes:=1; 9:mes:=2; 10:mes:=0; 11:mes:=1; 12:mes:=2; end;
Решение задачи: «Задачка. Нужно написать числовую функцию»
textual
Листинг программы
mes:=(mes+2) mod 3
Объяснение кода листинга программы
Список с пояснениями к коду:
mes
- переменная, значение которой меняется в рамках решения задачи(mes+2) mod 3
- выражение, определяющее новое значение переменнойmes
mes
- увеличивается на 22
- добавляется кmes
mod 3
- результат увеличивается на 3 (так как 2 + 3 = 5)mes
- принимает новое значение (5)mes
- выводится на экран (в данном случае не указано, где и как это происходит)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д