Poniższe dodawanie jest troszkę inne od tradycyjnego dodawania. Przeanalizuj podane przykłady, a następnie spróbuj określić regułę dodawania. Podaj ile wynosi ostatni wynik.
Poprawna odpowiedź to 23 + 45 = 77, szczegóły obliczeń zostały podane poniżej.
W treści zadania zostało podane, że liczby zostały dodane, więc musi istnieć pewien dodatkowy etap przed / po dodaniu. Jak można z podanych przykładów zauważyć dla dwóch identycznych liczb wynik jest taki sam jak w przypadku normalnego dodawania tj. 23 [+] 23 = 23 + 23 = 46. Tezę o dodawaniu potwierdza również fakt, że wynik jest zawsze większy od każdej z liczb.
Przypatrzmy się dwóm równaniom 36 [+] 54 = 81 oraz 23 [+] 36 = 86. W obu przypadkach po lewej stronie występuje ta sama liczba, ale dodawany jest inny składnik. Jednak 36 + 54 = 90, a nie 81... Któraś z liczb musiała się zatem zmniejszyć o 9. Wtedy prawdziwe będzie, że 27 + 54 = 81 lub 36 + 45 = 81. W tym drugim przypadku warto zauważyć, że drugi składnik składa się z tych samych cyfr co poprzednio. Metoda ta zadziała również w drugim przypadku 12 [+] 67 = 88, ale tym razem trzeba dodać 9, a nie odjąć. Otóż 21 + 67 = 88 i 12 + 76 = 88. Co możemy zauważyć?
Drugi składnik znowu się różni o 9 i składa się z tych samych cyfr. Jednak teoria różnicy 9 upada np. przy 26 [+] 31 = 39. Jednak jak z 45 otrzymać 54, a z 67 otrzymać 76? Wystarczy zapisać liczby wspak! Sprawdźmy to na przykładzie 26 [+] 31 = 39. Jeśli zamienimy drugi składnik na jego wersję wspak to 26 + 13 = 39. Zgadza się! Warto sprawdzić dla innych przykładów.
Jednak dla 36 [+] 23 = 86 otrzymujemy błędny wynik: 36 + 32 = 68. Czym różni się ten przykład od innych? Otóż większa liczba stoi jako pierwsza, a nie druga. Spróbujmy zapisać wspak większa liczbę. Wtedy faktycznie 63 + 23 = 86.
Podsumowując podczas dodawania zapisujemy wspak liczbę, która jest większa. Resztę działania wykonujemy jak w przypadku zwykłego dodawania :)
Pisząc program liczbę można zapisać wspak przy pomocy takiej funkcji wspak():
Potem w programie wystarczy dopisać funkcję, która zgodnie z regułami zapisze wspak odpowiedni składnik i na koniec zwróci sumę dwóch liczb.
Wystarczy uruchomić poniższy kod, aby sprawdzić czy potrafi już dodawać według odnalezionej wcześniej regule!