某天,诺诺在做两个10以内(包含10)的加法运算时,感觉太简单。于是她想增加一点难度,同时也巩固一下英文(学好英文真的很重要!),就把数字用英文单词表示。为了验证她的答案,请根据给出的两个英文单词表示的数字,计算它们之和并以英文单词的形式输出。如果没记住这些数字的英文单词,那就先好好学学英文吧。\n\n输入格式:\n多组测试数据,处理到文件尾。每组测试输入两个英文单词表示的数字A、B(0≤A,B≤10)。\n\n输出格式:\n对于每组测试,在一行上输出A+B的结果,要求以英文单词表示。用c++写
时间: 2024-02-15 20:02:10 浏览: 80
好的,以下是一个用 C++ 实现的解法:
```c++
#include <iostream>
#include <string>
#include <unordered_map>
std::unordered_map<std::string, int> num_dict = {
{"zero", 0}, {"one", 1}, {"two", 2}, {"three", 3}, {"four", 4},
{"five", 5}, {"six", 6}, {"seven", 7}, {"eight", 8}, {"nine", 9},
{"ten", 10}
};
std::string to_word(int num) {
static std::string words[] = {"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine", "ten"};
return words[num];
}
int main() {
std::string a, b;
while (std::cin >> a >> b) {
int num_a = num_dict[a];
int num_b = num_dict[b];
int sum = num_a + num_b;
std::cout << to_word(sum) << std::endl;
}
return 0;
}
```
上述代码中,我们首先使用 `std::unordered_map` 定义了一个从英文单词到整数的映射表 `num_dict`,以便将输入的英文单词转换为数字。然后,我们定义了一个辅助函数 `to_word`,用于将数字转换为对应的英文单词。接下来,我们在 `main` 函数中循环读取输入,每次读入两个英文单词,将其转换为数字并求和,然后将结果转换为对应的英文单词并输出。
希望这个示例对你有所帮助!
阅读全文