Условие: нужно ввести 4 значное целое число и определить является ли оно палиндромом("перевертышем"). для определения отдельных разрядов числа используется операции div и mod что в паскале обозначает: program n1; var a,b,i,q,l: integer; constlimit=4 begin readln(a); l: =a; b: =0; while a> 0 do begin q: =a mod 10; b: =b*10+q; a: =a div 10; end; if(l=b)then writeln('yes')else writeln('no'); end. 1. while a> 0 do 2. q: =a mod 10; b: =b*10+q; a: =a div 10; я не совсем понимаю, для чего в переменную b мы присвоили значение где b умножено на 10 и к произведению прибавлена q? 3. l: =a; b: =0; и я не понимаю, почем мы здесь присвоили b значение равное 0? объясните !
100
310
Ответы на вопрос:
While a> 0 do begin q: =a mod 10; b: =b*10+q; a: =a div 10; end; этот фрагмент формирует число, обратное заданному числу а, это число в конце будет находится в ячейке b. для примера рассмотрим короткое число. пусть а=123123> 0 поэтому все команды будут выполняться: q: =a mod 10; остаток от деления 123 на 10: q=3 b: =b*10+q; записываем ее в b b=0*10+3=3 (вот поэтому сначала b должен быть 0) a: =a div 10; откидываем от а последний разряд: а=12 (берем целую часть деления 123 на 10) идем в начало цикла 12> 0 поэтому все команды будут выполняться: q: =a mod 10; остаток от деления 12 на 10: q=2 b: =b*10+q; записываем ее в b b=3*10+2=32 a: =a div 10; откидываем от а последний разряд: а=1 (берем целую часть деления 12 на 10) идем в начало цикла 1> 0 поэтому все команды будут выполняться: q: =a mod 10; остаток от деления 1 на 10: q=1 b: =b*10+q; записываем ее в b b=32*10+1=321 a: =a div 10; откидываем от а последний разряд: а=0 (берем целую часть деления 1 на 10) идем в начало цикла. условие 0> 0 не выполняется, переходим к после цикла. а в b находится число, перевернутое по отношению к исходному.
Популярно: Информатика
-
Aurelli112.03.2023 11:05
-
Dasha590120.09.2020 04:16
-
пирапомарниманин218418.09.2022 04:48
-
M1004199919.08.2021 15:41
-
leloneltt02.06.2023 21:04
-
Василий200507.12.2020 14:15
-
Saharok0071129.07.2021 19:34
-
lera95601.10.2020 15:17
-
Седракян23.05.2022 05:50
-
baybiboom22.05.2021 10:13