Sandi 53

January 1st, 2005 by mbro

Untuk masuk kedalam ruang server utama, ‘pengunjung’ harus mempunyai kartu identitas. Bila kartu identitas tersebut valid, selanjutnya pengunjung harus memasukkan kode melalui numeric keypad yang formatnya mirip dengan numpad pada keyboard.

Uniknya, sistem ini sama sekali tidak menyimpan kode (password) dalam databasenya. Pintu ruangan akan terbuka bila kode yang dimasukkan bernilai 53 (limapuluh tiga). Tapi, Anda tidak dapat memasukkan begitu saja angka 5 dan 3 ini. Sistem tidak dapat menerima dua angka secara berturut-turut sebagai sebuah bilangan. Jadi bila Anda memasukkan kode 53 maka akan dikenali sebagai angka 5 dan 3 (bukan limapuluh tiga). Lalu bagaimana?

Anda harus menggunakan operasi aritmatika untuk mendapatkan angka 53. Contoh: 5 * 5 * 2 + 3 = 53. Namun, sistem juga akan menolak inputan 5*5*2+3 karena sistem membaca kode secara “PREFIX”. Jadi operasi aritmatika tersebut dapat dibentuk menjadi: +**5523 atau +*5*523.
Sayangnya sistem ini masih hanya sebatas usulan dari pihak manajemen. Angka 53 ini nantinya dapat diubah sewaktu-waktu sesuai dengan keputusan manajemen. Sebagai programmer baru Anda diminta terlibat dalam permasalahan ini.

Tugas Anda bukan untuk menemukan kombinasi dan bentuk prefix dari angka 53 tersebut, tetapi merancang program untuk membaca dan mengenali kode 53.

Input:

inputan program berupa “kode prefix” yang dimasukkan melalui mesin numpad. Asumsi: karakter yang diinputkan hanya 0,1,2,3,4,5,6,7,8,9,+,-,*,/, dan tombol Enter.

Output:

Ada tiga kemungkinan output program, yaitu “format salah”, bila bentuk prefixnya salah. “kode ditolak”, bila kode prefix yang dimasukkan tidak sama dengan 53. Dan “kode diterima”, bila kode yang dimasukkan mempunyai nilai 53.

Contoh:

input: 5*5*2+3
output: format salah

input: +*5103
output: format salah

input: +53
output: kode ditolak

input: +**5523
output: kode diterima

input: +*5*523
output: kode diterima 

input: +**552/+-2592
output: kode diterima

Petunjuk: karakter dibagi menjadi dua kelompok yaitu operator (+,-,*,/) dan operand (0,1,2,3,4,5,6,7,8,9). Gunakan binary tree dan masukkan tiap karakter kode tsb ke dalam tree dengan menggunakan metode prefix.

(mbro291203)


0 Responses to “Sandi 53”

  1. No Comments

Ingin diskusi? kunjungi forum belajar!

Leave a Response