Anda bekerja sebagai programmer untuk sebuah bank.
Tugas Anda adalah menulis program yang menangani transaksi dari satu rekening bank ke yang lain.
Program harus melakukan hal berikut:
- Jalankan dalam loop tak terbatas menunggu input.
Input terdiri dari 3 angka:
Accountnumber1, Accountnumber2 dan x jumlah uang.
misalnya 999222 777333 500 - Periksa apakah nomor akun dan x valid.
Masukan ini valid jika nomor akun tidak sama dan ada di database Anda dan jika x lebih besar dari nol, - Transfer uang dari akun1 ke akun2, tetapi hanya jika akun1 memiliki cukup uang.
Akun tidak boleh masuk ke negatif. - Jika semuanya berjalan dengan baik, cetak sesuatu seperti "Transfer x $ dari number1 ke number2"
- jika terjadi kesalahan, misalnya karena nomor akun tidak valid, cetak pesan kesalahan.
- Berhenti jika inputnya 0
Basis data berisi rekening bank berikut:
999222: 10000.56$
888333: 335.13$
555222: 56.0$
222111: 123.55$
123456: 0.0$
Contoh Python 2 sederhana:
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:
Nomor rekening bank Anda adalah 123456.
Anda memiliki tepat 0,0 $ di akun Anda.
Anda ingin mengubahnya dengan memanipulasi program Anda:
Program harus melakukan persis apa yang seharusnya dilakukan, tetapi juga harus mentransfer sejumlah uang gratis ke akun Anda.
Anda harus berhati-hati. Atasan Anda akan melihat kode Anda dan dia tidak akan senang jika dia melihat sesuatu yang mencurigakan. Dia tahu tentang Lubang Lingkaran Standar , jadi jangan coba-coba.
Juga, uang yang Anda berikan kepada diri sendiri tidak boleh terlalu banyak. Akan mencurigakan jika uang Anda bertambah terlalu cepat. Jangan serakah.
Kode Anda harus sesederhana dan sejelas mungkin, cobalah untuk menghindari kebingungan berat.
Ini adalah kontes popularitas, jawabannya dengan kemenangan terbanyak.
Catatan: Tolong cetak saldo setiap akun di akhir program Anda, sehingga kami dapat melihat berapa banyak uang yang Anda hasilkan dari kerja keras Anda (hanya untuk menunjukkan bahwa program Anda benar-benar melakukan sesuatu).
EDIT: Untuk memperjelas
Tantangannya adalah bukan untuk menulis sebuah program yang dapat menangani database besar dan banyak transaksi. Tantangannya adalah untuk membuat program terlihat seperti hanya melakukan apa yang seharusnya dilakukan, tetapi kenyataannya tidak.
Sebagai contoh jika inputnya adalah 999222 777333 500
:
Kemudian tambahkan, jika mungkin, 500 ke akun 777333 dan kurangi 500 dari akun 999222. Anda tidak perlu "mencuri" uang dari akun itu. Anda dapat "menghasilkan" uang untuk akun Anda dengan hanya menambahnya entah bagaimana dalam kode Anda.
Berapa terserah Anda, tetapi Anda dapat berasumsi bahwa Anda ingin mendapatkan setidaknya $ 0,1 dan maks. 10 $ untuk setiap input yang diberikan. Akan mencurigakan jika Anda tiba-tiba memiliki jutaan di akun Anda. Anda tidak perlu khawatir tentang ketidaktepatan floating point, tetapi Anda dapat menggunakannya untuk menambah uang Anda.
Setiap pengguna memainkan peran sebagai penyelia.
Jika triknya sulit dikenali jawabannya.