怎样用C语言打2的1000次方

2025-06-22 22:03:28
推荐回答(3个)
回答1:

刚刚百度了一下,因为C语言无法定义超大数字,可以用字符串来模拟,这样的话我们可以定义一个整形数组,有若干元素。循环1000次,把计算出的结果保存到数组中,给每个数组元素一个范围,超过范围时就保存到下一个元素中,直到把这1000次搞定,利用字符串方式模拟输出。

回答2:

#include
using namespace std;

int main(int argc, char *argv[])
{
double log2 = 0.30102999566398119;
int n, digits;
n=1000;
digits = (int)(n*log2+1)/4+2;
int *num = new int[digits];
memset(num, 0, sizeof(int) * digits);

int p, q, r=1;
p = n%16;
q = n>>4;

num[0] = 1;
num[0] <<= p;
num[1] = num[0]/10000;
num[0] %= 10000;

for(int i=0, g; i {
g=0;
for(int j=0; j {
num[j] <<= 16;
num[j] += g;
g = num[j]/10000;
num[j] %= 10000;
}
while(g)
{
num[r++]=g%10000;
g/=10000;
}
}

for( ; !num[r]; --r) ;
printf("%d", num[r--]);
if(r>0)
for(r; r>=0; --r)
printf("%04d", num[r]);

delete []num;
system("PAUSE");
return 0;
}

回答3:

int mul=2;
for(int i=0;i<1000,i++)
{
mul=mul*2;

}