Написать программу в Паскале Дано натуральное число n (n<9999). а)сколько цифр в числе n? б)чему равна сумма его цифр? в)найти последнюю цифру числа. г)найти первую цифру числа. д ) найти предпоследнюю цифру числа ( в предположении , что n>10). е)дано число m. Найти сумму m- последних цифр числа n. ж)выяснить, входит ли цифра 3 в запись числа n. з)поменять порядок цифр числа n на обратный. и)переставить последнюю и первую цифры числа n.

14 Мар 2020 в 19:41
183 +1
1
Ответы
1

program NumberOperations;

var
n, m, num, sum, firstDigit, lastDigit, secondLastDigit, reversedNum, sumOfLastMDigits: integer;
contains3: boolean;

begin
// ввод числа n
write('Введите число n: ');
read(n);

// а) количество цифр
num := n;
num := abs(num);
while num > 0 do
begin
num := num div 10;
inc(sum);
end;
writeln('Количество цифр в числе n: ', sum);

// б) сумма цифр
sum := 0;
while n > 0 do
begin
sum := sum + (n mod 10);
n := n div 10;
end;
writeln('Сумма цифр числа n: ', sum);

// в) последняя цифра
lastDigit := n mod 10;
writeln('Последняя цифра числа n: ', lastDigit);

// г) первая цифра
firstDigit := 0;
while n <> 0 do
begin
firstDigit := n mod 10;
n := n div 10;
end;
writeln('Первая цифра числа n: ', firstDigit);

// д) предпоследняя цифра
n := n div 10; // убираем последнюю цифру
secondLastDigit := n mod 10;
writeln('Предпоследняя цифра числа n: ', secondLastDigit);

// е) сумма m последних цифр
write('Введите число m: ');
read(m);
sumOfLastMDigits := 0;
num := abs(n);
while m > 0 do
begin
sumOfLastMDigits := sumOfLastMDigits + (num mod 10);
num := num div 10;
dec(m);
end;
writeln('Сумма m последних цифр числа n: ', sumOfLastMDigits);

// ж) входит ли цифра 3
contains3 := false;
num := abs(n);
while num > 0 do
begin
if num mod 10 = 3 then
contains3 := true;
num := num div 10;
end;
if contains3 then
writeln('Цифра 3 входит в запись числа n')
else
writeln('Цифра 3 не входит в запись числа n');

// з) обратный порядок цифр
num := abs(n);
reversedNum := 0;
while num > 0 do
begin
reversedNum := reversedNum * 10 + (num mod 10);
num := num div 10;
end;
writeln('Число n с обратным порядком цифр: ', reversedNum);

// и) перестановка первой и последней цифры
num := abs(n);
lastDigit := num mod 10;
firstDigit := 0;
while num > 0 do
begin
firstDigit := num mod 10;
num := num div 10;
end;
num := (n - lastDigit) div 10;
num := num 10 + firstDigit;
num := num 10 + lastDigit;
writeln('Число n с переставленной первой и последней цифрой: ', num);

end.

18 Апр 2024 в 16:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир