请教:C语言大整数输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 23:54:47
有一个小程序要编写2的N次方,N要求<=100,应该用什么来存储个输出?
_int64 可以存入 但是怎么输出呢?请高手指教!

2的100次方:1267650600228229401496703205376
#include <stdio.h>
#include <stdlib.h>

int a[10000]; //保存结果
int m; //结果位数

void N_Sqrt(int num)
{
a[0] = 1;
m = 1;

for(int i = 1, flag = 0; i <= num; i++) //i为乘数2的个数,flag用于存放进位。
{
for(int j = 0, temp = 0; j < m; j++) //乘数各位a[j]*2,
{
temp = a[j] * 2 + flag;
a[j] = temp % 10;
flag = temp / 10;
}

while(flag)
{
a[m++] = flag % 10;
flag /= 10;
}
}
}
void main()
{
int num = 100;
N_Sqrt(num);
printf("%d的%d的结果为:", 2, num);
for(int j = (m - 1); j >= 0; j--) printf("%d", a[j]);
printf("\n");
}

_int64位不够吧,你的n可能100呀,你只能想别的办法了。