Ви працюєте програмістом у банку.
Ваше завдання - написати програму, яка обробляє транзакції з одного банківського рахунку на інший.
Програма повинна робити наступне:
- Виконати в нескінченному циклі, що чекає введення.
Вхід складається з 3 чисел: номер
рахунку1, номер рахунку2 та х сума грошей.
наприклад 999222 777333 500 - Перевірте, чи дійсні номери рахунків та х.
Введення дійсне, якщо номери рахунків не однакові і існують у вашій базі даних, і якщо x більше нуля, - Перерахуйте гроші з рахунку1 на рахунок2, але тільки якщо на рахунку1 є достатньо грошей.
Рахунки не можуть переходити в мінус. - Якщо все піде добре, надрукуйте щось на кшталт "Перенесено x $ з числа1 в число2"
- якщо щось піде не так, наприклад, тому що номери рахунків недійсні, надрукуйте повідомлення про помилку.
- Зупиніть, якщо вхід 0
База даних містить такі банківські рахунки:
999222: 10000.56$
888333: 335.13$
555222: 56.0$
222111: 123.55$
123456: 0.0$
Простий приклад Python 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
:
Потім додайте, якщо можливо, 500 на рахунок 777333 і відніміть 500 з рахунку 999222. Вам не доведеться "красти" гроші з цих рахунків. Ви можете "генерувати" гроші для свого рахунку, просто збільшивши його якось у своєму коді.
Скільки залежить від вас, але ви можете припустити, що ви хочете заробити принаймні 0,1 $ і макс. 10 $ за кожен заданий вхід. Було б підозріло, якби у вас раптом на вашому рахунку були мільйони. Вам не доведеться турбуватися про неточність плаваючої точки, але ви можете використовувати її для збільшення своїх грошей.
Кожен користувач виконує роль супервізора.
Якщо хитрість важко помітити, відповідь не відповідає.