С мод и див Умоляю
для задачи потребуются арифметические операции div и mod.
Создайте программу, которая для введённого целого числа
k (от 1 до 99) выводит фразу Мне к лет», где число, заменяя в нужных случаях слово «лет» словом «год» или "года". Например, при 70 должно быть выведено «Мне 70 лет», при = 15 «Мне 15 лет», при = 23 •Мне 23 года» и т. п.
1) FOR: 1
While: 0
do ... while: 1
2)For: Бесконечность
While: Пока условие истинно
do ... while: Выполняется пока выражение истинно
3)For: используется, когда мы знаем точное количество проходов цикла
Пример: Поиск четных или нечетных чисел на каком-либо отрезке чисел.
While:используется, когда мы не знаем точное количество проходов цикла.
Пример: Разделение числа на цифры.
do ... while: также используется, когда мы не знаем точное количество проходов цикла.
4) Моменты для запоминания
For: Используется, когда мы знаем сколько раз нам нужно пройти этот цикл.
While: Если нужно задать условие для выполнения цикла и не известно точное количество прохода цикла
do-while: используется, если известно, что как минимум один проход цикла нужен.
1. 0..65534 -> 32767
2. 0..32766 -> 16383
3. 0..16382 -> 8191
4. 0..8190 -> 4095
5. 0..4094 -> 2047
6. 2048..4094 -> 3071
7. 2048..3070 -> 2559
8. 2560..3070 -> 2815
9. 2816..3070 -> 2943
10. 2944..3070 -> 3007
11. 2944..3006 -> 2975
12. 2976..3006 -> 2991
13. 2992..3006 -> 2999
14. 3000..3006 -> 3003
15. 3000..3002 -> 3001
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer;
begin
f := 3001;
l := 0;
r := 65534;
x := (l + r) div 2;
k := 1;
while (x <> f) and (l < r) do
begin
writeln(k,' ',l,' ',r,' ',x);
k := k + 1;
if f < x then r := x - 1
else l := x + 1;
x := (l + r) div 2
end;
writeln(k,' ',l,' ',r,' ',x);
end.