用c++实现上述程序
时间: 2024-10-16 20:17:29 浏览: 23
在C++中,你可以使用`std::string`来存储和处理数字,然后通过迭代器或切片来访问特定位。以下是C++版本的代码实现:
```cpp
#include <iostream>
#include <string>
int getDigit(int n, int k) {
// 将整数转换为字符串
std::string str_n = std::to_string(n);
// 检查k是否合法
if (k < 0 || k >= str_n.size()) {
std::cerr << "无效的位索引" << std::endl;
return -1; // 或者抛出异常
}
// 如果k为0,表示右侧第一个数字,直接返回
if (k == 0) {
return str_n[0] - '0';
} else {
// 计算第k位的位置
int offset = str_n.size() - k;
return str_n[offset] - '0'; // 字符'0'对应数值0
}
}
int main() {
int num = 12345;
int digit_index = 0;
int digit = getDigit(num, digit_index);
if (digit != -1) {
std::cout << "第" << digit_index << "位数字是:" << digit << std::endl;
}
return 0;
}
```
在这个例子中,`getDigit`函数将输入的整数n转换为字符串,然后根据位索引k找到相应的数字并返回。请注意,`str_n[offset]`实际上返回的是字符,所以我们需要用减去字符'0'来获取对应的数值。
阅读全文