Problemi 064

Kërkesa

Një makinë llogaritëse është me difekt. Kur mbledh dy numra ajo nuk e transferon tepricën, p.sh 12 + 9 sipas saj del 11. Bëni një program që merr 2 numra dhe nxjerr rezultatin që do nxirrte kjo makinë llogaritëse për mbledhjen e tyre.

Referenca: https://www.codechef.com/problems/BUGCAL

Shembull

$ cat input.txt
2
12 9
25 25

$ python3 prog.py < input.txt
11
40

Zgjidhja 1

for _ in range(int(input())):
    a, b = map(int, input().split())
    c = 0
    p = 1
    while a > 0 or b > 0:
        d1 = a % 10
        d2 = b % 10
        d = (d1 + d2) % 10
        c += p * d
        a //= 10
        b //= 10
        p *= 10
    print(c)

Sqarime

Marrim shifrën e fundit të dy numrave, duke gjetur mbetjen e pjesëtimit me 10. I mbledhim këto dhe gjejmë mbetjen e pjesëtimit me 10, e cila është njëra nga shifrat e numrit të ri. Të ndryshorja p mbajmë fuqitë e dhjetës (1, 10, 100, 1000, etj.) të cilat tregojnë edhe se çfarë është kjo shifra e numrit të ri që sapo gjetëm (njëshe, dhjetëshe, qindëshe, etj.) Kështu që e shumëzojmë shifrën me p dhe ia shtojmë numrit. Ndërkohë marrim edhe herësin e pjesëtimit me dhjetë për dy numrat a dhe b, që cikli të vazhdojë me shifrën tjetër.

Zgjidhja 2

for _ in range(int(input())):
    a, b = map(int, input().split())
    l = []
    while a > 0 or b > 0:
        d1 = a % 10
        d2 = b % 10
        l.append((d1 + d2) % 10)
        a //= 10
        b //= 10
    l.reverse()
    print(''.join(map(str, l)))

Sqarime

Pak a shumë e njëjta zgjidhje, vetëm se shifrat e numrit të ri mbajmë në një listë dhe pastaj i bashkojmë si një varg (string).

Detyra

Në një listë me N numra natyrorë mund të shtojmë edhe K numra të tjerë sipas dëshirës, dhe pastaj gjejmë të mesmen e të gjithë numrave. E mesmja e një liste është elementi që ndodhet në mesin e listës, pasi ti kemi renditur. P.sh. e mesmja e [2, 1, 5, 2, 4] është 2, kurse e mesmja e [3, 3, 1, 3, 3] është 3.

Gjeni se sa është vlera më e madhe e të mesmes që mund të merret në këtë mënyrë. Na jepet gjithashtu që K < N dhe që N + K është numër tek.

Referenca: https://www.codechef.com/problems/CK87MEDI

Shembull

$ cat input.txt
3
2 1
4 7
4 3
9 2 8 6
5 2
6 1 1 1 1

$ python3 prog.py < input.txt
7
9
1

Na jepen numrat N dhe K, dhe pastaj N numrat e listës.

Në rastin e parë, një nga zgjidhjet e mundshme është të shtojmë 9, duke formuar listën [4, 7, 9], e mesmja e të cilës është 7.

Në rastin e tretë, sido që të jenë 2 numrat që do shtohen, e mesmja do jetë gjithmonë 1.