C语言编程,求2的n次方,当n比较大时存储不了,用数组来存

比如2的64次方=18446744073709551616,用数组存储为a[]={1,8,4,4,6,7,4,4,0,7,3,7,0,9,5,5,1,6,1,6}

第1个回答  2016-04-24
#include <stdio.h>
void multiplyByTwo(char *a)
{
int i;
for (i=0; i<1000; i++)
a[i] *= 2;
for (i=0; i<1000; i++)
if (a[i]>9)
{
a[i] -= 10;
a[i+1]++;
}
}
int main(void)
{
char a[1000] = {'\0'};
int i;
int n;
printf("请输入n的值:");
scanf("%d",&n);
a[0] = 1;
for (i = 0; i<n; i++)
multiplyByTwo(a);
printf("2^%d = ",n);
for (i = 999; i>=0; i--)
if (a[i] != '\0') break;
for (; i>=0; i--)
putchar(a[i] + '0');
printf("\n");
return 0;
}本回答被提问者采纳