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