11 февраля
Тема: Разложение натуральных чисел.
Как мы знаем в 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;
Осталось найти сотню. Обозначим сотню c.
c:= 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; |
c |
|
c:= x div 100; |
Найдите закономерность (посказываю: обратите внимание как находятся крайние цифры и не крайние). Сложно? Нет. Но рассмотрим еще один пример
Задание3. Дано четырехзначное число. Найти сумму цифр числа. Решение: Пусть четырехзначное число равно 1234. Найдем его цифры.
1) Цифру 4 мы можем найти.
Это единица, которая находится по формуле e:=x mod 10; (1234 разделить на 10 равно 123 и остаток 4).
2) Цифру 3 мы не можем сразу найти (при делении на 10 получатся числа 4 и 123, а при делении на 100 - 12 и 34), но мы можем найти 3 из числа 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; то есть c:= (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; |
c |
|
c:= x div 100; |
c:= (x div 100) mod 10; |
t |
|
|
t:= x div 1000; |
А теперь легче найти закономерность...
Ну и осталось найти сумму цифр числа
s=e+d+c+t
program pr1;
Var x,e,d,c,t,s:integer;
begin
readln(x);
e:=x mod 10;
d:=(х div 10) mod 10;
c:=(х div 100) mod 10;
t:=x div 1000;
s:=e+d+c+t;
writeln (‘s=’,s );
end.
Задание4. Дано пятизначное число. Найти произведение его цифр. Ввод 54321, вывод 120.
Задание5.Дано трехзначное число. Найти сумму цифр и увеличить её в 2 раза Ввод 510, вывод 12
Дома.
1) Выучить записи в тетради
2) Дано четырехзначное число. Найти произведение цифр числа. Ввод 1119, вывод 9.
|