输出2的1-100次方

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:23:33
要怎么做呢?
2^100=1267650600228229401496703205376
希望能给出准确值

以前写过一个算10000的阶乘的一个算法,思路差不多,将每一次乘得到结果按位存放,然后将下一个要乘进来的数按位与这个数相乘,将十位作为进位与它的上一位相加
程序如下:

#include <stdio.h>
int main()
{
int n = 1;
// printf("请输入n的大小:"); //计算2的N次方
// scanf("%d",&n);
// printf("2的1-100次方:\n"); //输出2的1-100次方
int a[2000];
int carry;
int i, k;
while(n <= 100)
{
int digit = 1;
a[0] = 1;
int temp;
for(i = 2,k = 1; k <= n; ++k)
{
carry = 0;
for(int j = 1; j <= digit; ++j)
{
temp = a[j-1] * i + carry;
a[j-1] = temp % 10;
carry = temp / 10;
}
while(carry)
{
a[++digit-1] = carry % 10;
carry /= 10;
}
}
printf("结果是:\n2^%d = ",n);
for(i = digit; i >=1; --i)
{
printf("%d",a[i-1]);
}
printf("\n");
n++;
}
return 0;
}<