<span>Во-первых, примем ограничение: число должно быть натуральным. т.е. целым и положительным без записи знака.
Во-вторых, возможны два принципиально разных алгоритма.
Первый
алгоритм предполагает, что число помещается оператором ввода в
целочисленную переменную и тогда мы получаем первую цифру, как
результат целочисленного деления на 10, третью - как остаток от целочисленного деления на 100, а вторую - как остаток от деления на 10 результата целочисленного деления на 10.
Второй алгоритм предполагает работу с символьным
изображением числа, т.е. после ввода получается символьная строка длиной
три. Первый (левый) символ будет первой цифрой числа и так далее.
Ниже приводятся тексты программ на языке Pascal, реализующие эти алгоритмы.</span>
<em>**********************************</em>
var
n:integer;
begin
Write('Введите целое трехзначное число без знака: '); Readln(n);
Writeln(n mod 10,(n div 10) mod 10,n div 100)
end.
<em><u>Тестовое решение:
</u></em>Введите целое трехзначное число без знака: 123
321
<em>**********************************</em>
var
n:string;
begin
Write('Введите целое трехзначное число без знака: '); Readln(n);
Writeln(n[3],n[2],n[1])
end.
<em><u>Тестовое решение:
</u></em>Введите целое трехзначное число без знака: 123
321
var num1,num2,i:integer;
nums:array [1..10] of integer;
begin
i:=1;
while (i <= 10) begin
writeln('Vvedite ',i,' paru!');
write('num 1: ');readln(num1);
write('num 2: ');readln(num2);
if(num1 >= num2) then nums[i]:=num1 else nums[i]:=num2;
i:=i+1;
end;
i:=1;
while(i<=10)begin
write(nums[i],' ');
i:=i+1;
end;
end.
в первом случае х идёт от 1-9 а Y от 0 до 8. шагов 9, к концу Y=8
во 2 случае
y 0 8 14 18 20 20
x 10 8 6 4 2 0
шагов 5, к концу Y=20
<h2>№1</h2>
Факториал нуля равен единице. Если N по условию может быть отрицательным, сразу после ввода следует это проверить.
Будем хранить ответ в переменной <em>fc </em>с начальным значением 1. Будем перебирать все числа от <em>2 </em>до <em>N </em>и домножать <em>fc </em>на каждое из них.
<h3>Код</h3>
var
n, i, fc: longint;
begin
read(n);
fc := 1;
for i := 2 to n do
fc := fc * i;
writeln(fc);
end.
<h2>№2</h2>
Используем цикл for, но вместо to будем писать downto.
<h3>Код</h3>
var
i: integer;
begin
for i := 28 downto 17 do
writeln(i);
end.