आप एक बैंक के लिए एक प्रोग्रामर के रूप में काम कर रहे हैं।
आपका कार्य एक प्रोग्राम लिखना है जो एक बैंक खाते से दूसरे में लेनदेन को संभालता है।
कार्यक्रम को निम्नलिखित करना चाहिए:
- इनपुट के इंतजार में एक अनंत लूप में दौड़ें।
इनपुट में 3 नंबर होते हैं:
Accountnumber1, Accountnumber2 और x की राशि।
जैसे 999222 777333 500 - जांचें कि क्या खाता संख्या और x मान्य हैं।
इनपुट मान्य है यदि खाता संख्याएँ समान नहीं हैं और आपके डेटाबेस में मौजूद हैं और यदि x शून्य से अधिक है, तो - पैसे को अकाउंट 1 से अकाउंट 2 में ट्रांसफर करें, लेकिन केवल तभी अकाउंट 1 में पर्याप्त पैसा हो।
खातों को नकारात्मक में जाने की अनुमति नहीं है। - अगर सब कुछ ठीक हो जाता है तो "नंबर 1 से नंबर 2 पर स्थानांतरित एक्स $" जैसे कुछ प्रिंट करें
- यदि कुछ गलत हो जाता है, उदाहरण के लिए क्योंकि खाता नंबर अमान्य हैं, तो एक त्रुटि संदेश प्रिंट करें।
- यदि इनपुट 0 है तो रुकें
डेटाबेस में निम्नलिखित बैंक खाते शामिल हैं:
999222: 10000.56$
888333: 335.13$
555222: 56.0$
222111: 123.55$
123456: 0.0$
सरल अजगर 2 उदाहरण:
account_numbers = ["999222", "888333", "555222", "222111", "123456"]
account_money = [10000.56, 335.13, 56.0, 123.55, 0.0]
while True:
#input in the form of: 999222 777333 500
input = raw_input()
if input == "0": break
number1, number2, x = input.split()
x = float(x)
if x <= 0:
print "Invalid request!"
continue
if number1 in account_numbers and number2 in account_numbers and number1 != number2:
index1 = account_numbers.index(number1)
index2 = account_numbers.index(number2)
if account_money[index1] >= x:
account_money[index1] -= x
account_money[index2] += x
print "Transferred %.2f$ from %s to %s" % (x, number1, number2)
else:
print "Not enough money in account %s!" % (number1)
else:
print "Invalid account number(s)!"
TWIST:
आपका बैंक खाता संख्या 123456 है
। आपके खाते में बिलकुल 0.0 $ है।
आप अपने कार्यक्रम में हेरफेर करके इसे बदलना चाहते हैं:
कार्यक्रम को वही करना चाहिए जो वह करने वाला है, लेकिन अपने खाते में कुछ मुफ्त पैसे भी स्थानांतरित करना चाहिए।
आपको हालांकि सावधान रहना होगा। आपका पर्यवेक्षक आपके कोड को देखेगा और यदि वह कुछ भी संदिग्ध देखता है तो वह प्रसन्न नहीं होगा। वह स्टैंडर्ड लूप होल्स के बारे में जानता है , इसलिए कोशिश भी नहीं करता।
इसके अलावा, आपके द्वारा दिया गया पैसा बहुत अधिक नहीं होना चाहिए। अगर आपका पैसा बहुत तेज़ी से बढ़ता है तो यह संदेहास्पद होगा। लालची मत बनो।
आपका कोड यथासंभव सरल और स्पष्ट होना चाहिए, भारी आक्षेप से बचने का प्रयास करें।
यह एक लोकप्रियता की प्रतियोगिता है, सबसे उत्थान के साथ उत्तर जीतता है।
नोट: कृपया अपने कार्यक्रम के अंत में प्रत्येक खाते के शेष राशि का उत्पादन करें, ताकि हम यह देख सकें कि आपने अपनी मेहनत से कितना पैसा कमाया (केवल यह दिखाने के लिए कि आपके कार्यक्रम ने वास्तव में कुछ किया है)।
EDIT: स्पष्ट करने के
लिए चुनौती एक ऐसे प्रोग्राम को लिखना नहीं है जो एक बड़े डेटाबेस और बहुत सारे लेनदेन को संभाल सके। चुनौती यह है कि कार्यक्रम को वैसा ही बनाया जाए जैसा वह करना चाहता है, लेकिन वास्तव में ऐसा नहीं है।
उदाहरण के लिए यदि इनपुट है 999222 777333 500
:
तो जोड़ें, यदि संभव हो तो, खाते में 777333 पर 500 और खाते से 500 को 999222 तक घटाएं। आपको उन खातों से पैसे "चोरी" करने की आवश्यकता नहीं है। आप अपने खाते के पैसे को अपने कोड में किसी तरह बढ़ाकर "उत्पन्न" कर सकते हैं।
आप पर कितना निर्भर है, लेकिन आप यह मान सकते हैं कि आप कम से कम 0.1 $ और अधिकतम अर्जित करना चाहते हैं। प्रत्येक दिए गए इनपुट के लिए 10 $। यह संदिग्ध होगा यदि आप अचानक आपके खाते में लाखों होंगे। आपको फ़्लोटिंग पॉइंट इंप्रेशन के बारे में चिंता करने की ज़रूरत नहीं है, लेकिन आप इसका उपयोग अपने पैसे को बढ़ाने के लिए कर सकते हैं।
प्रत्येक उपयोगकर्ता पर्यवेक्षक की भूमिका निभाता है।
अगर चाल जवाब देने के लिए मुश्किल है।