请将一个数字,翻译成对应的英文。 输入 一个自然数n,0≤n≤2^31-1。 输出 输出这个数的英文,最后不要有多余的空格。c++代码
时间: 2024-04-14 21:27:47 浏览: 84
数字翻译为英文的c++实现
3星 · 编辑精心推荐
以下是一个用 C++ 编写的程序,可以将给定的数字翻译成对应的英文:
```cpp
#include <iostream>
#include <string>
std::string ones[] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
std::string teens[] = {"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
std::string tens[] = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
std::string numToWords(int num) {
if (num == 0) {
return "zero";
} else if (num < 10) {
return ones[num];
} else if (num < 20) {
return teens[num - 10];
} else if (num < 100) {
return tens[num / 10] + (num % 10 != 0 ? " " + ones[num % 10] : "");
} else if (num < 1000) {
return ones[num / 100] + " hundred" + (num % 100 != 0 ? " " + numToWords(num % 100) : "");
} else if (num < 1000000) {
return numToWords(num / 1000) + " thousand" + (num % 1000 != 0 ? " " + numToWords(num % 1000) : "");
} else if (num < 1000000000) {
return numToWords(num / 1000000) + " million" + (num % 1000000 != 0 ? " " + numToWords(num % 1000000) : "");
} else {
return numToWords(num / 1000000000) + " billion" + (num % 1000000000 != 0 ? " " + numToWords(num % 1000000000) : "");
}
}
int main() {
int num;
std::cout << "请输入一个自然数 n:";
std::cin >> num;
std::string result = numToWords(num);
std::cout << "对应的英文为:" << result << std::endl;
return 0;
}
```
这个程序定义了一个 `numToWords` 函数,该函数将输入的数字转换成对应的英文。在 `main` 函数中,我们获取用户输入的数字并调用 `numToWords` 函数进行转换,最后将结果输出。请注意,这里假设用户输入的是一个自然数。
阅读全文