Перевести число из пятеричной системы счисления в десятичную - PascalABC.NET
Формулировка задачи:
Вводится массив, хранящий цифры числа в пятеричной системе счисления, начиная с младших. Вычислить данное число в десятичной системе. Динамическими массивами не пользоваться.
Решение задачи: «Перевести число из пятеричной системы счисления в десятичную»
textual
Листинг программы
var a:array[1..20] of byte;
n,i,j:byte;
k,sum:int64;
begin
repeat
write('Количество разрядов числа в СС 5 от 1 до 20 n=');
readln(n);
until n in [1..20];
writeln('Введите цифры числа от 0 до 4 начиная с младшего разряда');
for i:=n downto 1 do
repeat
write('a[',i,']=');
readln(a[i]);
until a[i] in [0..4];
writeln('Введеннное число в СС 5');
for i:=1 to n do
write(a[i]);
writeln;
k:=0;
for i:=n-1 downto 1 do
begin
if a[i] in [1..4] then
begin
sum:=a[i];
for j:=1 to n-i do sum:=sum*5;
end
else sum:=0;
k:=k+sum;
end;
if a[n]in [1..4] then inc(k,a[n]);
write('Число в СС 10=',k);
end.
Объяснение кода листинга программы
- Объявлены переменные: a (массив), n (количество разрядов числа), i, j (счетчики), k (сумма разрядов), sum (сумма разрядов).
- Ввод количества разрядов числа от 1 до 20.
- Ввод цифр числа от 0 до 4 начиная с младшего разряда.
- Вывод введенного числа в СС 5.
- Вычисление суммы разрядов числа от старших к младшим.
- Вывод числа в СС 10.