Объяснение:
возможно то, возможно нет, но на:
map(int, input().split()) можно использовать в случае, если вводится несколько чисел через разделитель (в данном случае через пробел)
По шагам:
input() возвращает строку (например: "1 2 3")
split() преобразует строку в list по разделителю - по умолчанию это пробел (результат: ["1", "2" ,"3"])
map преобразует список в соответствие с функцией - в данном случае int(elem) (результат: [1, 2 , 3]
В результате выполнения кода получится объект map, который хорошо бы еще было обернуть в list (list(map())
var a,n,i,j,s:integer;
begin
writeln('Введите количество цифр в числе');
readln(n);
for i:=1 to n do begin
writeln('Введите ',i,' цифру из ',n);
readln(a);
for j:=1 to n-i do a:=a*10;
s:=s+a;
end;
writeln('Натуральное число: ',s);
end.
Тестовое решение
Введите количество цифр в числе
5
Введите 1 цифру из 5
9
Введите 2 цифру из 5
2
Введите 3 цифру из 5
7
Введите 4 цифру из 5
3
Введите 5 цифру из 5
1
Натуральное число: 92731
Решение №2 Если очень надо использовать массив (хотя на мой взгляд совсем не нужно)
//PascalABC.NET (версия 3.1, сборка 1198)
var a,n,i,j,s:integer;
mas:array[1..10]of integer;
begin
writeln('Введите количество цифр в числе');
readln(n);
for i:=1 to n do begin
writeln('Введите ',i,' цифру из ',n);
readln(mas[i]);
a:=mas[i];
for j:=1 to n-i do a:=a*10;
s:=s+a;
end;
writeln('Натуральное число: ',s);
end.
Тестовое решение
Введите количество цифр в числе
5
Введите 1 цифру из 5
5
Введите 2 цифру из 5
4
Введите 3 цифру из 5
3
Введите 4 цифру из 5
2
Введите 5 цифру из 5
2
Натуральное число: 54322