Advertisement
bakakun

konversi.cpp

May 18th, 2013
1,864
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <cmath>
  5.  
  6.  
  7. using namespace std;
  8. string satuan[] = { "", "satu ", "dua ", "tiga ", "empat ", "lima ", "enam ", "tuju ", "delapan ", "sembilan " };
  9.  
  10.  
  11. string konvertAngka(int n) {
  12.     if (n < 0) {
  13.         return "negatif " + konvertAngka(-n);
  14.     } else if (n < 10) {
  15.         return satuan[n];
  16.     } else if (n == 10) { // khusus untuk sepuluh
  17.         return "sepuluh ";
  18.     } else if (n == 11) { // khusus untuk sebelas
  19.         return "sebelas ";
  20.     } else if (n < 20) {
  21.         return satuan[n-10] + "belas ";
  22.     } else if (n < 100) {
  23.         return satuan[(n-(n%10))/10] + "puluh " + konvertAngka(n % 10);
  24.     } else if (n < 1000) {
  25.         return (n < 200 ? "seratus " : satuan[(n-(n%100))/100] + "ratus ") + konvertAngka(n % 100);
  26.     } else if (n < 1000000) {
  27.         return (n < 2000 ? "seribu " : konvertAngka((n-(n%1000))/1000) + "ribu ") + konvertAngka(n % 1000);
  28.     } else if (n < 1000000000) {
  29.         return konvertAngka((n-(n%1000000))/1000000) + "juta " + konvertAngka(n % 1000000);
  30.     } else {
  31.         return "Angka lebih besar dari 999,999,999 (harus kurang dari 1 Milyar)";
  32.     }
  33. }
  34.  
  35. int main(int argc, char * argv[]) {
  36.     if(argc<=1) {
  37.         cout << "jangan lupa masukkan angka saat run." << endl;
  38.         return 1;
  39.     }
  40.  
  41.     int angka = atoi(argv[1]);
  42.     cout << konvertAngka(angka)<< (argv[2]? argv[2] : "" ) << endl;
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement