은행의 프로그래머로 일하고 있습니다.
당신의 임무는 한 은행 계좌에서 다른 은행 계좌로의 거래를 처리하는 프로그램을 작성하는 것입니다.
프로그램은 다음을 수행해야합니다.
- 입력을 기다리는 무한 루프에서 실행하십시오.
입력은 3 개의 숫자 :
Accountnumber1, Accountnumber2 및 x 금액입니다.
예 : 999222 777333 500 - 계좌 번호와 x가 유효한지 확인하십시오.
계정 번호가 동일하지 않고 데이터베이스에 존재하고 x가 0보다 크면 입력이 유효합니다. - account1에서 account2로 돈을 이체하십시오. 그러나 account1에 충분한 돈이있는 경우에만 가능합니다.
계정은 부정으로 들어갈 수 없습니다. - 모든 것이 잘된다면 "number1에서 number2로 x $ 전송"과 같은 것을 인쇄하십시오.
- 계정 번호가 잘못되어 문제가 발생하면 오류 메시지를 인쇄하십시오.
- 입력이 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 $가 있습니다.
프로그램을 조작하여이를 변경하려고합니다
. 프로그램이 수행해야하는 작업을 정확하게 수행해야하지만 무료 돈을 계정으로 이체해야합니다.
그래도 조심해야합니다. 귀하의 상사는 귀하의 코드를보고 의심스러운 것을 보더라도 기뻐하지 않을 것입니다. 그는 표준 루프 구멍 에 대해 알고 있으므로 시도하지 마십시오.
또한, 당신이 당신에게주는 돈이 너무 많아서는 안됩니다. 돈이 너무 빨리 증가하면 의심 스러울 것입니다. 탐욕하지 마십시오.
코드는 가능한 한 간단하고 명확해야합니다. 난독 화를 피하십시오.
이것은 인기 공모전입니다.
참고 : 프로그램이 끝날 때 각 계정의 잔액을 출력하여 귀하의 노력으로 벌어 들인 금액을 확인할 수 있도록하십시오 (귀하의 프로그램이 실제로 무언가를 수행했음을 보여주기 위해).
편집 : 명확하게
하는 것은 큰 데이터베이스와 많은 트랜잭션을 처리 할 수있는 프로그램을 작성하는 것이 아닙니다. 문제는 프로그램이해야 할 일만하는 것처럼 보이게하는 것이지만 실제로는 그렇지 않습니다.
예를 들어
, 다음과 같이 입력 한 경우 999222 777333 500
:
가능하면 계정 777333에 500을 추가하고 계정 999222에서 500을 뺍니다. 해당 계정에서 돈을 "훔칠"필요는 없습니다. 코드에서 어떻게 든 돈을 늘리면 계정에서 돈을 "생성"할 수 있습니다.
귀하에게 얼마의 비용이 들지만 최소한 0.1 $ 이상을 벌고 싶다고 가정 할 수 있습니다. 주어진 각 입력에 대해 10 $. 계정에 갑자기 수백만의 사용자가 있으면 의심 할 것입니다. 부동 소수점 부정확도에 대해 걱정할 필요는 없지만 돈을 늘리기 위해 사용할 수 있습니다.
모든 사용자는 감독자의 역할을합니다.
트릭이 답을 찾기 어려울 경우 대답.