c++ 统计十进制整数的非 0 位数
时间: 2024-04-16 19:28:50 浏览: 41
你可以使用以下方法来统计一个十进制整数的非零位数:
1. 将整数转换为字符串。
2. 遍历字符串的每个字符,计算非零位数的数量。
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int countNonZeroDigits(int num) {
std::string numStr = std::to_string(num);
int count = 0;
for (char c : numStr) {
if (c != '0') {
count++;
}
}
return count;
}
int main() {
int num = 123045;
int nonZeroCount = countNonZeroDigits(num);
std::cout << "Non-zero digit count: " << nonZeroCount << std::endl;
return 0;
}
```
在上面的示例中,我们首先将整数 `num` 转换为字符串 `numStr`,然后使用一个循环遍历字符串的每个字符。如果字符不是 '0',则将非零位数计数器 `count` 加一。最后,返回计数器的值。
注意,此方法假设输入的是一个有效的整数。如果输入包含非数字字符或小数点等无效字符,可能会导致意外结果。
相关问题
c++将十进制int转化为二进制字符串的函数
可以使用以下代码将十进制整数转换为二进制字符串:
```c++
#include <bitset>
#include <string>
std::string intToBinaryString(int num) {
return std::bitset<sizeof(int) * 8>(num).to_string();
}
```
这里使用了 C++11 中的 std::bitset 类,它可以将整数转换为二进制表示形式。函数中的 sizeof(int) * 8 表示整数所占的位数,使用 to_string() 可以将二进制表示形式转换为字符串。
用c++将十进制数转换为5位二进制数
以下是使用C语言将十进制数转换为5位二进制数的代码:
```c
#include <stdio.h>
int main() {
int decimal, binary[5], i;
printf("Enter a decimal number between 0 and 31: ");
scanf("%d", &decimal);
for (i = 4; i >= 0; i--) {
binary[i] = decimal % 2;
decimal /= 2;
}
printf("The binary representation of %d is: ", decimal);
for (i = 0; i < 5; i++) {
printf("%d", binary[i]);
}
printf("\n");
return 0;
}
```
在此代码中,我们使用了一个名为`binary`的整数数组来存储二进制数的每一位。我们还使用`for`循环来将十进制数转换为二进制数,并将其存储在数组中。最后,我们使用另一个`for`循环来打印二进制数的每一位。请注意,在此代码中,我们假设用户输入的数字在0和31之间,因为我们只打印5位二进制数。如果您想要打印更多位数的二进制数,您需要相应地更改代码。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)