আপনি একটি ব্যাংকের প্রোগ্রামার হিসাবে কাজ করছেন।
আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা এক ব্যাংক অ্যাকাউন্ট থেকে অন্য ব্যাঙ্কে লেনদেন পরিচালনা করে।
প্রোগ্রামটি নিম্নলিখিত করা উচিত:
- ইনপুটটির জন্য অপেক্ষা করে অসীম লুপে চালান। ইনপুটটিতে
3 টি সংখ্যা রয়েছে:
অ্যাকাউন্টনম্বার 1, অ্যাকাউন্টনম্বার 2 এবং এক্স টাকার পরিমাণ।
যেমন 999222 777333 500 - অ্যাকাউন্ট নম্বর এবং এক্স বৈধ কিনা তা পরীক্ষা করে দেখুন।
যদি অ্যাকাউন্ট নম্বরগুলি একই না থাকে এবং আপনার ডাটাবেজে উপস্থিত থাকে এবং যদি x শূন্যের চেয়ে বড় হয় তবে ইনপুটটি বৈধ, - অ্যাকাউন্ট 1 থেকে অ্যাকাউন্ট 2 এ অর্থ স্থানান্তর করুন, তবে কেবল যদি অ্যাকাউন্ট 1 এ পর্যাপ্ত টাকা থাকে।
অ্যাকাউন্টগুলিকে নেতিবাচক অবস্থায় যেতে দেওয়া হয় না। - সবকিছু ঠিকঠাক থাকলে "ট্রান্সফারড x x থেকে নম্বর 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)!"
টুইটার : আপনার ব্যাঙ্ক অ্যাকাউন্ট নম্বরটি 123456।
আপনার অ্যাকাউন্টে ঠিক 0.0 have রয়েছে।
আপনি আপনার প্রোগ্রামটি পরিচালনা করে তা পরিবর্তন করতে চান:
প্রোগ্রামটি যা করা উচিত তা ঠিক করা উচিত, তবে আপনার অ্যাকাউন্টে কিছু নিখরচায় অর্থ স্থানান্তর করা উচিত।
আপনি যদিও সাবধান হতে হবে। আপনার সুপারভাইজার আপনার কোডটি দেখবে এবং সন্দেহজনক কিছু দেখলে সে সন্তুষ্ট হবে না। তিনি স্ট্যান্ডার্ড লুপ হোল সম্পর্কে জানেন , তাই চেষ্টাও করবেন না।
এছাড়াও, আপনি নিজের হাতে যে অর্থ দেন তা খুব বেশি হওয়া উচিত নয়। আপনার অর্থ খুব দ্রুত বৃদ্ধি পেলে এটি সন্দেহজনক হবে। লোভী হবেন না।
আপনার কোডটি যতটা সম্ভব সহজ এবং পরিষ্কার হওয়া উচিত, ভারী অবসারণ এড়াতে চেষ্টা করুন।
এটি একটি জনপ্রিয়তা প্রতিযোগিতা, সর্বাধিক উত্তরের সাথে উত্তর জিতল।
দ্রষ্টব্য: দয়া করে আপনার প্রোগ্রামের শেষে প্রতিটি অ্যাকাউন্টের ভারসাম্য আউটপুট করুন, যাতে আপনার পরিশ্রমের মাধ্যমে আপনি কত অর্থ উপার্জন করেছেন তা আমরা দেখতে পারি (কেবল আপনার প্রোগ্রামটি আসলে কিছু করেছে তা দেখানোর জন্য)।
সম্পাদনা: স্পষ্ট করে তোলা
চ্যালেঞ্জটি এমন একটি প্রোগ্রাম লিখতে নয় যা একটি বৃহত ডাটাবেস এবং প্রচুর লেনদেন পরিচালনা করতে পারে। চ্যালেঞ্জটি হ'ল প্রোগ্রামটিকে দেখতে এমনভাবে দেখানো উচিত যা করা উচিত বলে মনে হয় তবে বাস্তবে তা হয় না।
উদাহরণস্বরূপ যদি ইনপুটটি হয় 999222 777333 500
:
তারপরে, সম্ভব হলে 500 অ্যাকাউন্টে 777333 যুক্ত করুন এবং অ্যাকাউন্টটি 999222 থেকে 500 টি বিয়োগ করুন those আপনাকে এই অ্যাকাউন্টগুলি থেকে অর্থ "চুরি" করতে হবে না। আপনি নিজের কোডটিতে কোনওভাবে বাড়িয়ে আপনার অ্যাকাউন্টের জন্য অর্থ "উত্পন্ন" করতে পারেন।
আপনার উপর কতটা নির্ভরশীল তবে আপনি ধরে নিতে পারেন আপনি কমপক্ষে 0.1 0.1 এবং সর্বোচ্চ উপার্জন করতে চান। প্রতিটি প্রদত্ত ইনপুট জন্য 10।। আপনার অ্যাকাউন্টে হঠাৎ লক্ষ লক্ষ টাকা থাকলে এটি সন্দেহজনক হবে। আপনার ভাসমান পয়েন্ট অসম্পূর্ণতা নিয়ে চিন্তা করার দরকার নেই, তবে আপনি আপনার অর্থ বাড়াতে এটি ব্যবহার করতে পারেন।
প্রতিটি ব্যবহারকারী সুপারভাইজারের ভূমিকা পালন করে।
কৌতুকটি যদি উত্তরটি স্পট করা শক্ত হয় তবে।