मान लीजिए हमारे पास एक फ्लोटिंग पॉइंट संख्या है; हमें जांचना है कि संख्या सम है या विषम। पूर्णांक के लिए यह आसान है - अंतिम अंक को 2 से विभाजित करके। लेकिन फ्लोटिंग पॉइंट संख्या के लिए यह सीधा नहीं है। हम अंतिम अंक को 2 से विभाजित करके जांच नहीं सकते।
उदाहरण के लिए, यदि इनपुट n = 200.290 है, तो आउटपुट "Odd" होगा भले ही अंतिम अंक 2 से विभाज्य हो।
हल करने का तरीका
- s := संख्या को स्ट्रिंग में बदलें
- flag := False
- स्ट्रिंग को अंत से शुरुआत तक पार करें:
- यदि s[i] '0' है और flag False है, तो अगली इटरेशन पर जाएं (अंतिम शून्यों को अनदेखा करें)
- यदि s[i] '.' है, तो flag := True, अगली इटरेशन पर जाएं
- यदि s[i] सम है, तो "Even" लौटाएं
- अन्यथा "Odd" लौटाएं
यह तरीका दशमलव बिंदु के बाद के अनावश्यक शून्यों को अनदेखा करता है और पहला गैर-शून्य अंक जांचता है।
उदाहरण कोड
def solve(n):
s = str(n)
flag = False
for i in range(len(s) - 1, -1, -1):
if s[i] == '0' and flag == False:
continue
if s[i] == '.':
flag = True
continue
if int(s[i]) % 2 == 0:
return "Even"
return "Odd"
n = 200.290
print(solve(n))
इनपुट
200.290
आउटपुट
Odd