|
本帖最后由 zyj19831206 于 2019-9-21 17:00 编辑
兄弟,你说的还是有点含糊,能否写一个伪代码,我在leetcode搜索了一段本题代码,总是运行不过去:
class Solution {
public:
string numberToWords(int num, bool prependSpace = false) {
static const string unit[] = { "", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen" };
static const string ten[] = { "", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety" };
string ret = "";
if (prependSpace && num != 0) {
ret += " ";
}
if (num == 0 && !prependSpace) {
ret += "Zero";
}
else if (num < 20) {
ret += unit[num];
}
else if (num < 100) {
ret += ten[num / 10] + numberToWords(num % 10, true);
}
else if (num < 1000) {
ret += numberToWords(num / 100) + " Hundred" + numberToWords(num % 100, true);
}
else if (num < 1000000) {
ret += numberToWords(num / 1000) + " Thousand" + numberToWords(num % 1000, true);
}
else if (num < 1000000000) {
ret += numberToWords(num / 1000000) + " Million" + numberToWords(num % 1000000, true);
}
else {
ret += numberToWords(num / 1000000000) + " Billion" + numberToWords(num % 1000000000, true);
}
return ret;
}
};
|
|