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 wynik10
lub wyższy, każdy wynik-1
lub 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/x
Zamiastx/y
), o ile jesteś konsekwentny dla wszystkich sześciu wyników! (Więc nie są dopuszczone do użytkuy-x
ix/y
w 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/x
zamiast 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^0
lub 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^x
a y%x
zamiast x-y
, x/y
, x^y
i 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-x
i x/y
w tej samej odpowiedzi).