Problem
Ganze Zahlen, die durch 2 teilbar sind, sind gerade; andere ganze Zahlen sind ungerade. Eine Zahl mit Nachkommastellen ist keines von beidem. Null ist gerade, und negative ganze Zahlen folgen derselben Regel.
Implementiere number_parity(number).
Eingabe
number: Die zu klassifizierende Zahl.
Ausgabe
Gib odd, even oder neither als Kleinbuchstaben zurück.
Einschränkungen
−1.000.000 ≤ number ≤ 1.000.000. Die Eingabe ist endlich und hat höchstens zwei Nachkommastellen.
Beispiele
Eingabe:
number = 14
Erwartete Ausgabe:
expected = "even"
Eingabe:
double number = 14;
Erwartete Ausgabe:
std::string expected = "even";
Eingabe:
double number = 14;
Erwartete Ausgabe:
string expected = "even";
Erläuterung
14 = 2 × 7, also ist sie durch 2 teilbar.
Eingabe:
number = 3.5
Erwartete Ausgabe:
expected = "neither"
Eingabe:
double number = 3.5;
Erwartete Ausgabe:
std::string expected = "neither";
Eingabe:
double number = 3.5;
Erwartete Ausgabe:
string expected = "neither";
Erläuterung
3.5 hat einen Nachkommabestandteil und ist daher weder eine ungerade noch eine gerade ganze Zahl.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Entscheide zuerst, ob die Eingabe eine ganze Zahl ist, denn Brüche sind weder ungerade noch gerade.
Hinweis 2
Bei ganzen Zahlen hängt die Parität davon ab, ob bei Division durch 2 ein Rest bleibt.
Hinweis 3
Denk daran: 0 ist gerade, und negative ganze Zahlen folgen derselben Regel wie positive.
Erwartete Komplexität
Zeit O(1), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.