如何计算C / C ++中最多1000位数字的位数

时间:2014-07-03 20:15:53

标签: c++ c count digits

如何计算C或C ++中最多1000位数的位数

#include <stdio.h>

int main()
{
    int num,counter=0;

    scanf("%d",&num);

    while(num!=0){
        num/=10;
        counter++;
    }

    printf("%d\n",counter);
}

此代码仅适用于最多10位的数字 - 我不知道原因。

1 个答案:

答案 0 :(得分:0)

由于大多数计算机无法保存1000位数的整数,因此您必须以字符串形式对输入进行操作或使用 Big Number 库。让我们试试前者吧。

将输入视为字符串时,每个数字都是'0''9'范围内的字符。

所以,这归结为计算字符:

std::string text;
cin >> text;
const unsigned int length = text.size();
unsigned int digit_count = 0;
for (i = 0; i < length; ++i)
{
  if (!std::isdigit(text[i]))
  {
    break;
  }
  ++digit_count;
}
cout << "text has " << digit_count << "digits\n";