2的10000次幂,这个数值太大了,无论哪个数据类型都无法直接存储,所以这里我们用数组来存储这个数值的每一位。
#include<stdio.h>
int main()
{
int a[100]={0}; //2的10000次幂值不会超过100位,我们定义一个空数组来储存
a[0]=1; //定义初始值为1
for(int i=0;i<100000;i++) //因为是2的10000次幂,所以循环10000次
{
for(int j=0;j<100;j++)
{
a[j]=a[j]*2; //利用循环将数组中的每一位都乘以2,用来等效整个数值乘以2
} //随后跟随i的循环乘以10000次
for(int j=0;j<99;j++)
{
if(a[j]>=10){
a[j]-=10;
a[j+1]+=1;} //判断每一个数组有没有超过10,有的话就-10并且下一位+1
}
}
int flag=0;
for(int i=99;i>=0;i--)
{
printf("%d",a[i]);
} //依次输出每个数组,其值就是2的10000次幂
return 0;
}