Kita mulai memasuki salah satu bagian favorit saya yaitu
“mengkonversi” bilangan menjadi kalimat / kata – kata J. Kita memasuki dulu
bagian yang mudahnya, menyebut angka dengan terbalik. Kali ini, kita meminta user untuk mengurangi bilangan apa pun (yang lebih kecil dari
10.000) dengan 10.000. Misalnya, user memasukkan angka 3456, maka 10.000 –
3.456 tentu saja hasilnya = 6.544, tapi kita mengkonversinya dengan
menjadikannya sebagai kalimat tapi dibaca terbalik. Jadi, tampilannya adalah:
empat empat lima
enam J.
Kodenya adalah:
#include
<iostream>
using
namespace std;
void sntce
(int n) {
switch (n) {
case 1: cout << "satu ";
break;
case 2: cout << "dua ";
break;
case 3: cout << "tiga ";
break;
case 4: cout << "empat ";
break;
case 5: cout << "lima "; break;
case 6: cout << "enam ";
break;
case 7: cout << "tujuh ";
break;
case 8: cout << "delapan
"; break;
case 9: cout << "sembilan
"; break;
case 0: cout << "nol ";
break;
default: break;
}
}
void
reverse (int n) {
int zero, mod;
zero = n / 10;
mod = n % 10;
if (zero == 0 && mod == 0)
exit;
else {
sntce (mod);
reverse (zero);
}
}
void main
() {
int in, reduce;
const int stay = 10000;
do {
cout << "";
cin >> in;
} while (in > 10000 || in < 1);
reduce = stay - in;
reverse (reduce);
cout << "\n";
}
Logika:
Dari input yang dimasukan oleh user, dikurangi dengan 10.000 lalu hasilnya mulai dari angka paling
terakhir sampai dengan angka pertama dikonversi ke dalam bentuk angka. Cara
untuk “mengambil” angka terakhir adalah dengan mengambil modulo / sisa bagi dari hasil pengurangan tersebut dibagi 10.
Misalnya, hasilnya 6544 dibagi 10 tentu saja sisanya adalah 4. Kemudian hasil
bulat dari 6544 dibagi 10 yang adalah 654 akan di bagi lagi dengan 10 dan akan
menghasilkan angka 4. Dan hasil bulat dari 654 dibagi 10 yang adalah 65 kembali
dibagi dengan 10 dan sisanya adalah 5. Kemudian yang terakhir, karena nilai 6
yang disimpan kemudian dibagi 10, dan sisanya pasti 6, maka 6 diambil.
Tidak ada komentar:
Posting Komentar