Wyzwanie:
Wyprowadza „liczby całkowite” jednej z następujących sześciu tabel arytmetycznych na podstawie danych wejściowych:
- add ( +);
- odejmowanie ( -);
- mnożenie ( *);
- podział ( /);
- potęgowanie ( ^);
- działanie modulo ( %).
Zasady:
- Co mogę określić jako „całkowitych końcowych cyfr”: każdy wynik arytmetycznej argumentu, który jest dokładnie jeden z następujących elementów:
0,1,2,3,4,5,6,7,8,9. Oznacza to, że wykluczasz każdy wynik10lub wyższy, każdy wynik-1lub niższy i każdy wynik nie będący liczbą całkowitą. Jak obliczyć wyniki arytmetyczne: Najpierw używając pierwszej cyfry, a następnie operandu z cyfrą lewą.Możesz to zrobić na odwrót (tj.y/xZamiastx/y), o ile jesteś konsekwentny dla wszystkich sześciu wyników! (Więc nie są dopuszczone do użytkuy-xix/yw tej samej odpowiedzi.) †- Nie wyprowadzimy niczego do podzielenia przez 0 przypadków testowych (dla tabel operacji dzielenia i modulo)
- Nie będziemy generować niczego dla Edge-Case
0^0.
Wynik:
Więc wypisz następujące (format tabeli jest nieco elastyczny (patrz poniżej): więc wiersze są opcjonalne i dodane głównie dla czytelności przypadków testowych):
Dodanie:
+ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 1 2 3 4 5 6 7 8 9
2 | 2 3 4 5 6 7 8 9
3 | 3 4 5 6 7 8 9
4 | 4 5 6 7 8 9
5 | 5 6 7 8 9
6 | 6 7 8 9
7 | 7 8 9
8 | 8 9
9 | 9
Odejmowanie:
- | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 0 1 2 3 4 5 6 7 8
2 | 0 1 2 3 4 5 6 7
3 | 0 1 2 3 4 5 6
4 | 0 1 2 3 4 5
5 | 0 1 2 3 4
6 | 0 1 2 3
7 | 0 1 2
8 | 0 1
9 | 0
Mnożenie:
* | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 0 0 0 0 0 0 0 0 0
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 2 4 6 8
3 | 0 3 6 9
4 | 0 4 8
5 | 0 5
6 | 0 6
7 | 0 7
8 | 0 8
9 | 0 9
Podział:
/ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 2 3 4
3 | 0 1 2 3
4 | 0 1 2
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Potęgowanie:
^ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 1 1 1 1 1 1 1 1 1
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 4 9
3 | 0 1 8
4 | 0 1
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1
Modulo:
% | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |
1 | 0 0 0 0 0 0 0 0 0 0
2 | 0 1 0 1 0 1 0 1 0 1
3 | 0 1 2 0 1 2 0 1 2 0
4 | 0 1 2 3 0 1 2 3 0 1
5 | 0 1 2 3 4 0 1 2 3 4
6 | 0 1 2 3 4 5 0 1 2 3
7 | 0 1 2 3 4 5 6 0 1 2
8 | 0 1 2 3 4 5 6 7 0 1
9 | 0 1 2 3 4 5 6 7 8 0
Zasady konkursu:
- Końcowe znaki nowej linii i końcowe spacje są opcjonalne
- Poziome i pionowe linie w przypadkach testowych są opcjonalne. Dodałem je tylko dla lepszej czytelności. †
- Odstępy między wynikami NIE są opcjonalne.
- Symbol arytmetyki może być inny, o ile jest jasne, który to jest. Tj.
×Lub·zamiast*do mnożenia;÷zamiast/do podziału; itp. †
I tak długo, jak jest to jedna postać, przepraszam za Python**. - Format wejściowy jest elastyczny. Możesz wybrać indeks od 0-5 lub 1-6 dla odpowiednich sześciu tabel; możesz wprowadzić symbol argumentu; itp. (W przeciwieństwie do tego, co wyświetlasz w wyniku, możesz wpisać pełne ciągi lub
**w przypadku Pythona.)
Po prostu upewnij się, że określisz format wejściowy, którego używasz w swojej odpowiedzi!
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- W razie potrzeby dodaj również wyjaśnienie.
† Przykład prawidłowego wyniku bez linii poziomych i pionowych, ÷jako symbol i użycie y/xzamiast x/y:
÷ 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 1
2 2 1
3 3 1
4 4 2 1
5 5 1
6 6 3 2 1
7 7 1
8 8 4 2 1
9 9 3 1
1, inne 0, inne coś innego 0^0lub dzielą / mod 0, ale będziesz musiał to obejść. Jeśli chodzi o twoje drugie pytanie: tak, o ile cyfry są nadal w tych samych kolumnach / wierszach, możesz użyć tyle spacji, ile chcesz.
y-x, y/x, y^xa y%xzamiast x-y, x/y, x^yi x%y? Hmm, chyba dobrze. Zmienię to w odpowiedzi; tak długo, jak będziesz konsekwentny dla wszystkich sześciu z nich (więc nie y-xi x/yw tej samej odpowiedzi).