Бағдарламалау үйірмесі мектеп турнирі үшін бағдарлама әзірлеп жатыр. Қатысушылардың нәтижелері results.txt мәтіндік файлында сақталады, әр қатысушыға бір жол, пішімі «Тегі;сынып;ұпай», мысалы «Ахметов;9;72». Жол «;» таңбасы бойынша бөліктерге бөлінеді. len функциясы жолдағы барлық таңбалардың, соның ішінде «;» таңбасының да санын қайтарады. Файлда алты жазба бар: «Ахметов;9;72», «Беков;10;85», «Ким;9;85», «Сулейменова;11;64», «Дюсенов;10;90», «Омарова;9;58». Қатысушыларды ретке келтіру үшін ұпайлары бойынша кему ретімен көпіршікті сұрыптау қолданылады: өту тізімнің басынан соңына дейін бір рет орындалады, көрші элементтер кезекпен салыстырылады және солдағысы оңдағысынан кіші болса, олардың орындары ауыстырылады. Нәтиженің бақылау санын табу үшін sum_digits(n) рекурсивті функциясы қолданылады: егер n < 10 болса, нәтиже n-ге тең; әйтпесе нәтиже (n mod 10) + sum_digits(n div 10), мұндағы mod — бөлгендегі қалдық, ал div — бөлгендегі бүтін бөлік. Файлды әртүрлі режимде ашуға болады: «r» — тек оқу, «w» — жазу, бұл кезде файлдың бұрынғы мазмұны өшіріледі, «a» — файлдың соңына жазу. Турнирден кейін қатысушылар A пунктінен E пунктіне барады. A, B, C, D, E пункттері екі жақты жолдармен жалғасқан: A–B 4 км, A–C 2 км, B–C 1 км, B–D 5 км, C–D 8 км, D–E 3 км. Бағдарлама бұл жол желісін граф ретінде сақтайды: пункттер — төбелер, жолдар — ұзындығы бар қабырғалар.
Мәтінде сипатталған функция бойынша sum_digits(2749) мәні неге тең?
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- B22
Талдау
sum_digits(2749) = 9 + sum_digits(274) = 9 + 4 + sum_digits(27) = 9 + 4 + 7 + sum_digits(2) = 9 + 4 + 7 + 2 = 22. «4» мәні — рекурсивті шақырулар саны, ал «13» соңғы 9 цифрын ескермегенде шығады.