这段代码里,如何对于大于99的正整数m,n只取十位和个位。
时间: 2024-09-15 12:14:32 浏览: 28
要对大于99的正整数 `m` 和 `n` 取其十位和个位,你可以使用 C++ 的字符串处理功能,将数字转换为字符串,然后截取对应的字符。以下是一个简单的示例:
```cpp
#include <string>
std::string getDigits(int number) {
std::ostringstream oss; // 将整数转为字符串流
oss << number;
return oss.str(); // 获取字符串表示的数字
}
int takeLastTwoDigits(int m, int n) {
std::string m_str = getDigits(m);
std::string n_str = getDigits(n);
// 截取最后一个字符(个位)和倒数第二个字符(十位)
char last_digit_m = m_str[m_str.size() - 1];
char second_last_digit_m = m_str[m_str.size() - 2];
char last_digit_n = n_str[n_str.size() - 1];
char second_last_digit_n = n_str[n_str.size() - 2];
return static_cast<int>(last_digit_m - '0') * 10 + (second_last_digit_m - '0'); // 十位*10+个位
}
// 使用方法
int main() {
int m = 123456, n = 789012;
int result = takeLastTwoDigits(m, n);
std::cout << "The last two digits of " << m << " and " << n << " are: " << result << std::endl;
return 0;
}
```
在这个例子中,我们首先将 `m` 和 `n` 转换为字符串,然后通过字符串的索引访问每个数字的十位和个位(字符串中的字符位置)。注意,字符 '0' 对应于数值 0,所以我们从字符减去 '0' 来获得对应的数字。