UVA10101




Sample Input
23764
45897458973958

Sample Output

   1. 23 hajar 7 shata 64
   2. 45 lakh 89 hajar 7 shata 45 kuti 89 lakh 73 hajar 9 shata 58


大意: 給一串數字小於16位 求用題目規則轉換後的樣子


解法: 遞迴(需特別注意輸出空格)


import java.util.*;

public class UVA10101 {

 public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);

  int count = 0;

  while (sc.hasNext()) {

   count++;

   long number = sc.nextLong();

   System.out.printf("%4d.", count);

   if (number == 0)
    System.out.print(" 0");

   else
    algorithm(number);

   System.out.println();
  }

 }

 public static void algorithm(long number) {

  if (number >= 10000000) {

   algorithm(number / 10000000);
   System.out.print(" kuti");
   number %= 10000000;

  }
  if (number >= 100000) {

   algorithm(number / 100000);
   System.out.print(" lakh");
   number %= 100000;

  }
  if (number >= 1000) {

   algorithm(number / 1000);
   System.out.print(" hajar");
   number %= 1000;

  }
  if (number >= 100) {

   algorithm(number / 100);
   System.out.print(" shata");
   number %= 100;

  }
  if (number != 0) {
   System.out.print(" " + number);
  }

 }

}