Работа с римскими цифрами:
– Римские цифры: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
– Если цифра меньшего номинала стоит перед цифрой большего номинала, то её значение вычитается, при этом V не вычитается.
– Не должно быть больше трёх одинаковых цифр подряд
– Вычитаться не может больше одной одинаковой цифры
1. XI = 10 + 1 = 11
IX = -1 + 10 = 9
LX = 50 + 10 = 60
CLX = 100 + 50 + 10 = 160
MDCXLVIII = 1000 + 500 + 100 - 10 + 50 + 5 + 1 + 1 + 1 = 1648
2. 13 = 10 + 1 + 1 + 1 = XIII
99 = -10 + 100 - 1 + 10 = XCI (в упрощенной системе записи допустимо -1 + 100 = IC)
666 = 500 + 100 + 50 + 10 + 5 + 1 = DCLXVI
1692 = 1000 + 500 + 100 - 10 + 100 + 1 + 1 = MDCXCII
_______________________________________________
Если в десятичной системе счисления числа записываются по степеням 10 (например, 123 = 1 * 100 + 2 * 10 + 3 * 1), то в системе с основанием b всё записывается по степеням числа b (). При этом цифры в системе счисления с основанием b принимают значение от 0 до b - 1; если цифр не хватает, то в ход идут буквы: A = 10, B = 11, C = 12, ...
3. Двоичная СС:
Троичная СС:
4. Обозначаем основание системы счисления за b, расписываем каждое число и получаем уравнения:
1) 5 + 4 = b + 1
b = 8
2) 4 + b + 1 = 2b
b = 5
3) b + 1 + b = b^2 + 1
b = 0 или 2 – основание сс не может быть равно 0
b = 2
4) b + 5 = 15
b = 10 – не подходит, в десятичной сс не может быть цифры F
ответ: 1) в восьмеричной, 2) в пятеричной, 3) в двоичной, 4) такого не бывает ни в какой системе счисления
program Schoolar;
var
i,j,n:integer;
begin
Write('n = '); Readln(n);
for i:=1 to n do begin
for j:=1 to 50 do
if j mod 2 = 0 then Write(j,' ');
Writeln
end
end.
Пример
n = 3
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
2. Примерно вот так рекомендуют делать эту задачу современные концепции программирования...
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!
begin
Loop ReadInteger('n =') do Range(2,50,2).Println
end.
Результат
n = 3
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50