Айдар Python тілінде натурал санның цифрларын талдайтын программа жазды. % амалы бөлгендегі қалдықты, ал // амалы бөлудің бүтін бөлігін береді. Программа a санын оқиды да, циклде оны соңынан бастап талдайды: соңғы d цифрын алады, содан кейін оны алып тастайды. Егер цифр жұп болса, ол s қосындысына қосылады, ал тақ болса, k есептегіші 1-ге артады. Соңында программа бірінші жолға s, екінші жолға k шығарады. Программаның мәтіні:
a = int(input())
s = 0
k = 0
while a > 0:
d = a % 10
if d % 2 == 0:
s = s + d
else:
k = k + 1
a = a // 10
print(s)
print(k)
Тексеру үшін Айдар әртүрлі сандарды енгізді, мысалы 52714 және 90310. Кейін ол программаны s тақ цифрлардың қосындысын жинайтындай, ал k жұп цифрларды санайтындай етіп өзгертуді ойлады.
s тақ цифрлардың қосындысын жинауы, ал k жұп цифрларды санауы үшін «if d % 2 == 0:» жолын қандай жолға ауыстыру керек?
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- Aif d % 2 == 1:
Талдау
Қосынды тармағы тақ цифрларға, яғни 2-ге бөлгендегі қалдық 1-ге тең болғанда орындалуы керек. «d % 2 == 1» шарты осыны тексереді, ал жұп цифрлар else тармағына түсіп, k 1-ге артады. Қалған шарттар жұп-тақтықты тексермейді: «d // 2 == 1» тек 2 және 3 цифрларына, «d % 10 == 1» тек 1 цифрына, «d > 5» тек 6–9 цифрларына орындалады.