|  | @@ -1,3 +1,93 @@
 | 
	
		
			
				|  |  |  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 " "
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 |