输入一个正整数n(0<=n<=1012),输出其位数c++
时间: 2024-10-27 07:10:31 浏览: 18
输入整数n,输出1~n的素数
在C++中,你可以使用`std::numeric_limits`库以及`std::log10`函数来计算一个正整数的位数。`std::log10(n)`会返回数字`n`对10的幂次方,即小数点后的第一个非零数字的位置。然后通过取整并加一得到位数。下面是一个简单的示例:
```cpp
#include <iostream>
#include <climits>
int countBits(long long n) {
int c = static_cast<int>(std::log10(n) + 1);
return c;
}
int main() {
long long n;
std::cout << "请输入一个正整数 (0 <= n <= 1e12): ";
std::cin >> n;
if (n >= 0 && n <= INT_MAX) {
int bits = countBits(n);
std::cout << "该数字有 " << bits << " 位。\n";
} else {
std::cout << "输入超出范围,请重新输入。\n";
}
return 0;
}
```
阅读全文