Тема: Разложение натуральных чисел.
Как мы знаем в Pascal есть две операции, нахождения остатка и частного при делении одного числа на другое DIV - целочисленное деление MOD - нахождение остатка
Задание1. Дано двузначное число. Найти цифры числа.
Решение:
Разделим число на 10, столбиком.
Пусть это будет число 37.
Частное равно 3 (целая часть при делении 37 на 10), а остаток равен 7.
3=37 div 10
7=37 mod 10
Но если мы посмотрим, то 3 это единица, а 7 это десятки. Обозначим единицы e, десятки d, само число х, тогда
e:=x mod 10;
d:=x div 10;
Program pr;
var e,d,x:integer;
begin
readln(x);
e:=x mod 10; d:=x div 10; writeln ('d= ' , d, ' e= ' , e);
end.
Задание2. Дано трехзначное число. Найти цифры числа. Решение: Пусть трехзначное число равно 123. Найдем его цифры.
Цифру 3 мы можем найти. Это единица, которая находится по формуле e:=x mod 10; (123 разделить на 10 равно 12 и остаток 3).
Цифру 2 мы не можем сразу найти (при делении на 10 получатся числа 3 и 12, а при делении на 100 - 1 и 23), но мы можем найти 2 из числа 12.
12=123 div 10;
2=12 mod 10;
Заменим 12 из второго равенства значением 12 из первого (выделен полужирным и подчеркнут).
получится:
2=(123 div 10) mod 10;
то есть
d:=(х div 10) mod 10; Осталось найти сотню. Обозначим сотню s.
s:= x div 100; (123 разделить на 100 равно 1 и остаток 23)
Сравним нахождение цифр двухначного и трехзначного числа
|
двузначное число |
трехзначное число |
e |
e:=x mod 10; |
e:=x mod 10; |
d |
d:=х div 10; |
d:=(х div 10) mod 10; |
s |
|
s:= x div 100; |
Найдите закономерность (посказываю: обратите внимание как находятся крайние цифры и не крайние). Сложно? Нет. Но рассмотрим еще один пример
Задание3. Дано четырехзначное число. Найти цифры числа. Решение: Пусть четырехзначное число равно 1234. Найдем его цифры. 1) Цифру 4 мы можем найти. Это единица, которая находится по формуле e:=x mod 10; (1234 разделить на 10 равно 123 и остаток 4). 2) Цифру 3 мы не можем сразу найти (при делении на 10 получатся числа 4 и 123, а при делении на 100 - 12 и 34), но мы можем найти 2 из числа 123 при делении на 10. 123=1234 div 10; 2=123 mod 10; Заменим также 123 из второго равенства значением 123 из первого (выделен полужирным и подчеркнут). получится: 2=(1234 div 10) mod 10; то есть d:=(х div 10) mod 10; Осталось найти сотню и тысячи.
3) Цифру 2 (сотня) мы не можем сразу найти (при делении на 10 получатся числа 4 и 123, при делении на 100 - 12 и 34, а при делении на 1000 - 1 и 234), но мы можем найти 2 из числа 12 при делении на 100. 12=1234 div 100; 2=12 mod 10; Заменим также 12 из второго равенства значением 12 из первого (выделен полужирным и подчеркнут). получится: 2=(1234 div 100) mod 10; то есть s:= (x div 100) mod 10;
4) Осталось найти тысячи. Обозначим тысячи t. t:= x div 1000; (1234 разделить на 1000 равно 1 и остаток 234)
Дополним таблицу:
|
двузначное число |
трехзначное число |
четырехзначное число |
e |
e:=x mod 10; |
e:=x mod 10; |
e:=x mod 10; |
d |
d:=х div 10; |
d:=(х div 10) mod 10; |
d:=(х div 10) mod 10; |
s |
|
s:= x div 100; |
s:= (x div 100) mod 10; |
t |
|
|
t:= x div 1000; |
А теперь легче найти закономерность...
Задание4. Найти цифры пятизначного числа
Задание5. Найти цифры шестизначного числа
Задание6. Найти сумму цифр трехзначного числа. (Ввод 123, вывод 6).
Решение: Program pr; var e,d,s,x,z:integer; begin readln(x); e:=x mod 10; d:=(x div 10) mod 10;
s:=x div 100;
z:=e+d+s;
writeln ('сумма цифр= ' , z); end. Задание7.Найти произведение цифр трехзначного числа (Ввод 123, вывод 6)
Задание8.Найти сумму цифр четырехзначного числа. (Ввод 1234, вывод 10).
Задание9.Найти произведение цифр четырехзначного числа (Ввод 1234, вывод 24)
Задание10.Найти сумму цифр пятизначного числа. (Ввод 12345, вывод 15).
Задание11.Найти произведение цифр пятизначного числа (Ввод 12345, вывод 120)
Задание12.Поменять местами десятки и сотни четырехзначного числа (Ввод 1234, вывод 1324)
Решение: Program pr; var e,d,s,x,z:integer; begin readln(x); e:=x mod 10; d:=(x div 10) mod 10; s:=(x div 100) mod 10;
t:=x div 1000; z:=t*1000+d*100+s*10+e; writeln ('число= ' , z); end. Задание13.Поменять местами единицы и десятитысячные пятизначного числа (Ввод 12345, вывод 52341)
Задание14.Поменять цифры местами трехзначного числа (найти палиндром) (Ввод 123, вывод 321)
Задание15.Заменить десятки трехзначного числа нулем. (Ввод 123, вывод 103)
|