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);
}
}
}