| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | func numberToWords(num int) string {	if num == 0 {		return "Zero"	}	return ntowRecurse(num)}func ntowRecurse(num int) (res string) {	if num/1000000000 != 0 {		res += ntowRecurse(num/1000000000) + getWord(0) + getWord(1000000000) + getWord(0) + ntowRecurse(num%1000000000)	} else if num/1000000 != 0 {		res += ntowRecurse(num/1000000) + getWord(0) + getWord(1000000) + getWord(0) + ntowRecurse(num%1000000)	} else if num/1000 != 0 {		res += ntowRecurse(num/1000) + getWord(0) + getWord(1000) + getWord(0) + ntowRecurse(num%1000)	} else if num/100 != 0 {		res += ntowRecurse(num/100) + getWord(0) + getWord(100) + getWord(0) + ntowRecurse(num%100)	} else if 20 <= num {		res += getWord(num-num%10) + getWord(0) + ntowRecurse(num%10)	} else if num != 0 {		res = getWord(num)	}	return strings.Trim(res, " ")}func getWord(num int) string {	switch num {	case 1:		return "One"	case 2:		return "Two"	case 3:		return "Three"	case 4:		return "Four"	case 5:		return "Five"	case 6:		return "Six"	case 7:		return "Seven"	case 8:		return "Eight"	case 9:		return "Nine"	case 10:		return "Ten"	case 11:		return "Eleven"	case 12:		return "Twelve"	case 13:		return "Thirteen"	case 14:		return "Fourteen"	case 15:		return "Fifteen"	case 16:		return "Sixteen"	case 17:		return "Seventeen"	case 18:		return "Eighteen"	case 19:		return "Nineteen"	case 20:		return "Twenty"	case 30:		return "Thirty"	case 40:		return "Forty"	case 50:		return "Fifty"	case 60:		return "Sixty"	case 70:		return "Seventy"	case 80:		return "Eighty"	case 90:		return "Ninety"	case 100:		return "Hundred"	case 1000:		return "Thousand"	case 1000000:		return "Million"	case 1000000000:		return "Billion"	default:		return " "	}}
 |