# Short clean C++ code, with explanation

• Function hundredStr() produces a string from integer less than 100.

And in numberToWords() it uses a for loop to set "Thousand","Million","Billion".

``````class Solution {
public:
string hundredStr(int num){
vector<string> arr1={"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten",
"Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
vector<string> arr2={"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"};
string ret;
ret=num%100<20?arr1[num%100]:arr2[(num%100)/10]+(num%10?" "+arr1[num%10]:"");
if(num>99)ret=arr1[num/100]+" Hundred"+(num%100?" "+ret:"");
return ret;
}
string numberToWords(int num) {
string ret;
vector<string> strarr={"Thousand","Million","Billion"};
ret=hundredStr(num%1000);
for(int i=0;i<3;i++){
num/=1000;
ret=num%1000?hundredStr(num%1000)+" "+strarr[i]+" "+ ret:ret;
}
while(ret.back()==' ')ret.pop_back();
return ret.empty()?"Zero":ret;
}
};``````

• Great code! It saves much work by considering `1-19` together instead of splitting it into `1-9` and `10-19` :-)

• Thanks! It seems like I'm too lazy. XD

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.