-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNaturalNumber.kt
51 lines (42 loc) · 1.29 KB
/
NaturalNumber.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//How do you design a solution for a given natural number convert it to a letter
/*
* Copied from somewhere
* */
fun main() {
println(convertNaturalNoToWords(7700))
}
fun convertNaturalNoToWords(no: Int): String {
if (no < 20) return arraySingle[no]
val item = no.toString()
var result = ""
for (i in item.length downTo 1) {
if (i == 1) {
val single = arraySingle[item[item.length - 1].digitToInt()]
result += " $single"
} else if (i == 2) {
val double = arrayDouble[item[item.length - i].digitToInt()]
result += " $double"
} else {
val single = arraySingle[item[item.length - i].digitToInt()]
result += " $single"
val double = arrayMultiple[item.length - i + 1]
result += " $double"
}
}
return result
}
val arraySingle = arrayOf(
"", "One", "Two", "Three",
"Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Eleven",
"Twelve", "Thirteen", "Fourteen", "Fifteen",
"Sixteen", "Seventeen", "Eighteen", "Nineteen"
)
val arrayDouble = arrayOf(
"Twenty", "Thirty",
"Forty", "Fifty", "Sixty",
"Seventy", "Eighty", "Ninety"
)
val arrayMultiple = arrayOf(
"","","Hundred", "Thousand", "Million", "Billion", "Trillion"
)