题解 | #学英语#
学英语
https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc
当然要拍照记录啊
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<vector<string>>ans = { {"one","two","three","four","five","six","seven","eight","nine"},{"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"} };
vector<string>ans1 { "ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen" };
vector<string>ans2 = { "thousand","million","billion" };
string daan(int a) {
string s;
if (a / 100 != 0 )
s += ans[0][a / 100 - 1] + ' ' + "hundred";
if (a / 100 != 0 && a % 100 != 0) {
s += ' ';
s += "and";
s += ' ';
}
if (a % 100 > 9 && a % 100 < 20)
s += ans1[a % 100 - 10];
else {
if (a % 100 > 19)
s += ans[1][(a % 100) / 10 - 2];
if(a % 100 > 19&&a % 10 != 0)
s+=' ';
if (a % 10 != 0)
s += ans[0][a % 10 - 1];
}
return s;
}
int main() {
long n;
cin >> n;
int a, num = -1;
vector<string>vec;
while (n) {
a = n % 1000;
vec.push_back(daan(a));
num++;
n /= 1000;
}
for (; num > 0; num--)
cout << vec[num] << ' ' << ans2[num - 1] << ' ';
cout << vec[0];
return 0;
}
查看5道真题和解析
巨人网络成长空间 50人发布