您正在为银行担任程序员。
您的任务是编写一个程序来处理从一个银行帐户到另一个银行帐户的交易。
该程序应执行以下操作:
- 在无限循环中运行,等待输入。
输入由3个数字组成:
Accountnumber1,Accountnumber2和x金额。
例如999222 777333 500 - 检查帐号和x是否有效。
如果帐号不相同并且存在于数据库中,并且x大于零,则输入有效。 - 将钱从帐户1转移到帐户2,但前提是帐户1有足够的钱。
帐户不允许进入负面状态。 - 如果一切顺利,请打印类似“将x $从number1转移到number2”的内容
- 如果出现问题(例如,由于帐号无效),请打印错误消息。
- 如果输入为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 $。
您想通过操作程序来改变它:
该程序应该完全按照预期的方式运行,但是还应该将一些免费资金转入您的帐户。
但是您必须要小心。您的主管将查看您的代码,如果他发现任何可疑的内容,他将不满意。他了解标准环孔,所以甚至不要尝试。
另外,您给自己的钱也不应太多。如果您的钱增长太快,那将是可疑的。不要贪心
您的代码应尽可能简单明了,以免造成混乱。
这是一场人气竞赛,投票最多的人获胜。
注意:请在程序结束时输出每个帐户的余额,以便我们可以看到您通过辛勤工作赚了多少钱(只是为了表明您的程序确实做了些事情)。
编辑:澄清
挑战不是编写一个可以处理大型数据库和大量事务的程序。面临的挑战是使程序看起来像只执行应做的事情,而实际上却不行。
例如,如果输入为999222 777333 500
:
然后,如果可能,将500添加到帐户777333中,然后从帐户999222中减去500。您不必从这些帐户中“窃取”资金。您可以通过在代码中以某种方式增加资金来“产生”您的帐户资金。
多少钱取决于您,但是您可以假设您想赚取至少0.1 $或最高。每个给定输入10 $。如果您的帐户突然有数百万美元,那将是可疑的。您不必担心浮点数不精确,但是您可以使用它来增加您的资金。
每个用户都扮演主管的角色。
如果很难找到答案,请回答。