Mnożenie
Transkrypt
Mnożenie
I Mistrzostwa Warszawskiej Wyższej Szkoły Informatyki w Programowaniu 8 – 17 stycznia 2009 Mnożenie Ludzie od zarania dziejów próbują ułatwić sobie wykonywanie wszelkich obliczeń matematycznych. Pierwsze potrzeby liczenia dały się odczuć człowiekowi już w czasach, kiedy mieszkał w jaskiniach i lasach. Aby regularnie (lub o odpowiedniej porze) składać bogom ofiary należało wykazać się zdolnością odliczania dni. W tamtych czasach liczyło się poprzez wykonywanie nacięć na kawałku drewna lub wykonywaniu rysunków na kamiennych ścianach. Rozwój cywilizacji przynosił coraz to więcej powodów do liczenia. Pasterz chciał mieć możliwość sprawdzenia, czy przypadkiem nie ubyło mu owieczki. Starożytni Rzymianie zauważyli, że można tego typu potrzebę zaspokoić przygotowując sobie zbiór kamieni równoliczny ze zbiorem owiec i stosowne sprawdzenie można było wówczas wykonać przez porównanie ilości elementów tych dwóch zbiorów. Nieco później (około 600 – 500 roku przed nasza erą) pojawiły się pierwsze liczydła. W połowie VII wieku wynalezienie symbolu zera przez Hindusów dało początek obliczeniom na piśmie. Zatrzymajmy się na chwilę w VII wieku naszej ery w którym nie istnieją kalkulatory, telefony, komputery istnieje za to umiejętność prowadzenia obliczeń na piśmie. Napisz program, który pomnoży pisemnie dwie liczby naturalne. Wejście W pierwszej linii wejścia znajduje się jedna liczba naturalna d (1 ≤ d ≤ 100) określająca ilość zestawów danych. W kolejnych liniach znajduje się d zestawów danych. Każdy zestaw danych składa się z pojedynczej linii zawierającej dwie liczby całkowite a i b (1 ≤ a, b ≤ 1050 oraz a ≥ b) oddzielone pojedynczą spacją. Liczby te są czynnikami szukanego iloczynu. Wyjście Dla każdego zestawu danych należy wypisać wszystkie etapy pisemnego mnożenia liczb a i b. Pierwsze dwie linie każdego zestawu danych powinny zawierać czynniki naszego iloczynu czyli liczby a i b. Liczby te powinny być wyrównane w ten sposób, aby ich ostatnie cyfry były w tej samej kolumnie co ostatnia cyfra iloczynu. W trzeciej linii wyjścia należy wypisać kreskę zbudowaną ze znaków „-”. Kreska ta również powinna być wyrównana do prawej strony zaś jej długość powinna być równa ilości cyfr liczby a. W kolejnych liniach powinny znajdować się częściowe iloczyny jakie tworzone są przy okazji mnożenia „pod kreską”. Każdy z nich powinien być odpowiednio przesunięty od prawej strony. W kolejnej linii każdego zestawu danych należy wypisać drugą kreskę o długości równej ilości cyfr końcowego iloczynu. W ostatniej linii powinien znaleźć się szukany iloczyn. Uwaga! W tym zadaniu szczególnie ważne jest zastosowanie się do specyfikacji wyjścia. Proszę nie wypisywać żadnych dodatkowych białych znaków (spacji itp.) poza tymi, które są niezbędne do przesunięcia liczb, kreski i częściowych iloczynów. Niezastosowanie się do tej uwagi może zakończyć się statusem WA na koniec rundy. Runda: 2 Zadanie: Mnożenie Strona 1/2 I Mistrzostwa Warszawskiej Wyższej Szkoły Informatyki w Programowaniu 8 – 17 stycznia 2009 Przykład Dla danych: 1 221 123 Runda: 2 Należy wypisać: 221 123 --663 442 221 ----27183 Zadanie: Mnożenie Strona 2/2