Wprowadzenie
Święty Mikołaj ma zbyt wiele nazw do przetworzenia i potrzebuje twojej pomocy! On potrzebuje napisać program lub funkcję, która wyprowadza nice, naughty, very naughtylub very very naughty. Aby określić, jak ktoś jest miły lub niegrzeczny, Mikołaj opracował algorytm:
Nicea ( podział , matematyka ):
Przede wszystkim otrzymujemy liczbę od nazwy, dodając wszystkie litery w górę ( spacje są ignorowane ). Na przykład:
Doorknob =
D = 4
o = 15
o = 15
r = 18
k = 11
n = 14
o = 15
b = 2
4 + 15 + 15 + 18 + 11 + 14 + 15 + 2 = 94
Jeśli liczba dzielników jest równa długości nazwiska, osoba jest brana pod uwagę nice. Oznacza to, że Twój program powinien generować dane wyjściowe [name] has been nice. Oto dzielniki 94:
Divisors of 94: 1, 2, 47, 94
Istnieją 4dzielniki, ale nazwa ma długość 8(ze spacjami ). Wniosek, Doorknobnie był miły. Kontynuujemy naszą podróż:
Niegrzeczny ( sekwencja , matematyka ):
Święty Mikołaj opracował nową sekwencję, numer świąteczny . Najpierw przyjrzymy się następującym choinkom:
n = 1 n = 2 n = 3 n = 4
*
***
*****
*******
*********
_ * ***
| *** *****
| ***** *******
* | ******* *********
* *** | *** ***
*** ***** n*n | ***** *****
* *** | ******* *******
***** | *** *********
* | ***** ***
|_******* *****
* *******
|_____| *********
2n+1 *
5 18 47 98
Ilość gwiazdek określa numer świąteczny. Sekwencja idzie w następujący sposób: 5, 18, 47, 98, 177, ....
Stąd możemy stwierdzić, że 94nie jest to numer świąteczny. Oznacza to, że Doorknobnie tylko było niegrzeczne.
Bardzo niegrzeczny ( string ):
W tym celu musimy dowiedzieć się, czy Doorknobjest to ciąg drabiny podnoszącej . To zależy od liter w nazwie z A = 1, B = 2, C = 3itp .:
Najpierw przyjrzymy się pierwszym piśmie D. To ma wartość 4. To jest nasz punkt wyjścia. Następny list to o. Ma wartość 15wyższą niż nasza poprzednia, więc idziemy o krok wyżej na drabinie. Następna wartość to również o. To jest to samo, więc nic nie robimy. Jeśli następna wartość jest wyższa niż wartość bieżąca, pójdziemy o krok wyżej. Jeśli następna wartość jest niższa niż bieżąca wartość, pójdziemy znacznie niżej. Jeśli będzie tak samo, pozostaniemy na tym samym kroku. Ten wizualizowane za Doorknob, Martin Buttneri Alex A:
O
/ \
R N B
/ \ /
O-O K T N U L X
/ / \ / \ / \ / \ / \
D M R I B T-T A E A
\ / \
A N R
\ /
E
Widać, że Doorknobzakończyło się wyżej niż pozycja początkowa. Tak Doorknob has been very naughty. Martin Buttneri Alex Anie przekroczył punktu początkowego. Więc są oboje very very naughty.
Przypadki testowe
Input: Doorknob
Output: Doorknob has been very naughty
Input: Martin Buttner
Output: Martin Buttner has been very very naughty
Input: Jakube
Output: Jakube has been nice
Input: B
Output: B has been very very naughty
Zasady
- Musisz podać program lub funkcję, która pobiera dane wejściowe (które składają się z co najmniej jednej litery).
- Dane wejściowe będą składały się z wielkich liter , małych liter i spacji . Spacje są ignorowane podczas procesu, z wyjątkiem długości danych wejściowych.
- To jest golf golfowy , więc wygrywanie z najmniejszą ilością bajtów wygrywa!
n^3 + 2n^2 + 2, btw.
ZZZ...Z = 26 * 99 = 2574, co oznacza, że wystarczy sprawdzić numery świąteczne aż do włącznie n=13. (Przydatne informacje dla innych golfistów.)
Santa has been very very naughty. Czekaj, co?
Santa Claus has been very naughty. Czy warto też wypróbować Świętego Nicka, Świętego Mikołaja, Świętego Mikołaja, Świętego Mikołaja, Krisa Kringle, Ojca Bożego Narodzenia, Pere Noela i wszystkich innych pseudonimów - może jeden z nich zadziała? Chociaż to, dlaczego „miły” facet potrzebuje tak wielu pseudonimów, jest już dość podejrzane ...