用c++简单点设计函数digit(num,k),返回整数num从右边开始的第k位数字的值,如不存在,返回-1
时间: 2024-11-25 11:19:02 浏览: 5
计算整数各位数字之和 C++中如何计算任何一个正整数的各位数字之和
在C++中,设计这样一个名为`digit`的函数可以使用取模运算符 `%` 和整除运算符 `/` 来实现。取模运算可以帮助我们获取每一位数字,而整除则用于移动到下一位。如果k超过了数字的位数,则返回-1。以下是简单的函数实现:
```cpp
int digit(int num, int k) {
// 检查k是否有效,避免越界访问
if (k <= 0 || k > static_cast<int>(std::log10(num) + 1)) {
return -1;
}
// 使用取模运算获取第k位的数字
int remainder = num % (int)pow(10, k);
return remainder / (int)pow(10, k - 1);
}
```
在这个函数中,我们首先检查k是否合理。如果k小于等于0或者k大于num的有效位数,即大于num转换成十进制后的长度加一,那么就返回-1。接着,通过 `num % pow(10, k)` 取余操作得到的是num右移k位后的最后一位,再除以10^(k-1),就是我们需要的第k位的值。
阅读全文