经过观察会发现规律,就是十百千这三个单位会不断重复。比如在万到亿之间是十万百万千万,亿以上也会有十亿百亿千亿。
所以…
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string itos(long long num) {
// 4 万
// 8 亿
vector<string> unit{"", "十", "百", "千", "万", "", "", "", "亿"};
vector<string> digit{"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
int cnt = 0, base = 0;
string ans;
while (num) {
int bit = num % 10;
num /= 10;
if ((cnt % 4) == 0) ans += unit[cnt]; // 万和亿
ans += unit[cnt % 4];
ans += '0' + bit;
cnt++;
}
reverse(ans.begin(), ans.end());
return ans;
}
int main() {
long long num = 123456789999L;
cout << itos(num) << endl;
return 0;
}