Đề bài
Các số nguyên chia hết cho 2 là số chẵn; các số nguyên còn lại là số lẻ. Một số có phần thập phân thì không phải cả số lẻ lẫn số chẵn. Số không là số chẵn, và các số nguyên âm cũng tuân theo quy tắc này.
Cài đặt hàm number_parity(number).
Đầu vào
number: Số cần phân loại.
Đầu ra
Trả về odd, even, hoặc neither dưới dạng chữ thường.
Ràng buộc
−1,000,000 ≤ number ≤ 1,000,000. Đầu vào là hữu hạn và có tối đa hai chữ số thập phân.
Ví dụ
Đầu vào:
number = 14
Kết quả mong đợi:
expected = "even"
Đầu vào:
double number = 14;
Kết quả mong đợi:
std::string expected = "even";
Đầu vào:
double number = 14;
Kết quả mong đợi:
string expected = "even";
Giải thích
14 = 2 × 7, nên chia hết cho 2.
Đầu vào:
number = 3.5
Kết quả mong đợi:
expected = "neither"
Đầu vào:
double number = 3.5;
Kết quả mong đợi:
std::string expected = "neither";
Đầu vào:
double number = 3.5;
Kết quả mong đợi:
string expected = "neither";
Giải thích
3.5 có phần thập phân, nên không phải số nguyên lẻ hay số nguyên chẵn.
Hướng tiếp cận
Hãy tự thử trước, sau đó mở từng gợi ý một.
Gợi ý 1
Trước hết hãy xác định đầu vào có phải số nguyên hay không, vì số thập phân không phải chẵn cũng không phải lẻ.
Gợi ý 2
Với số nguyên, tính chẵn lẻ phụ thuộc vào việc chia 2 có dư hay không.
Gợi ý 3
Nhớ rằng 0 là số chẵn, và số nguyên âm tuân theo cùng quy tắc như số dương.
Độ phức tạp mong đợi
thời gian O(1), bộ nhớ phụ O(1)
Tham khảo
Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.