如何为C中的整数变量赋值10 ^ 100?

时间:2017-06-06 19:54:27

标签: c

我正在研究一个问题来计算一个数字中的位数,但是根据约束,该数字的范围应该是10 ^ 100(10到100的功率)。我已经尝试使用limits.h但它没有用。任何人都可以建议一种方法吗?

int main(){  

    int n=LONG_MAX;
    int count;
    scanf("%d",&n);
    while(n!=0)
    {
        n=n/10;
        count++;
    }
    printf("%d",count);
    return 0;
}

2 个答案:

答案 0 :(得分:0)

好吧,在C 10 ^ 100中可以很容易地存储到int

int xored = 10^100;

之后,xored将存储110。

1100100
0001010
-------
1101110

答案 1 :(得分:-3)

正如其他人所说,你不需要将它存储为数字。创建一个长度为100的字符数组。将值初始化为非数字值。从CIN或者你得到的数字,然后将它保存到该字符数组。然后计算在到达非数字之前有多少数字。

的伪代码:

BigNumber = new char[100];

cout << "Input the number:\n";

cin >> BigNumber;

digits = 0;
for(i = 0; i < 100; i++)
{
    if( IsNumeric(BigNumber[i]) )
    {
        digits++;
    }
    else
    {
        break;
    }
}

cout << "That number is " << digits << " digits long";