c语言中 计算2的n的n次方 N可能大于100
2012-11-24
#include <stdio.h>
int main()
{
int N;
/*
数组每个元素作为一个位.
并且value[1000]为个位
*/
int value[1001] = {0};
int i;
value[1000] = 1;//初始化个位为1
scanf("%d", &N); //2^N
while(N--)
{
//每个位乘上2
for(i = 1000; i > 0; --i)
{
value[i] *= 2;
}
//从个位开始,满是进1
for(i = 1000; i > 0; --i)
{
if(value[i] >= 10)
{
value[i] -= 10;
value[i-1] += 1;
}
}
}
//输出数组
for(i = 0; i <= 1000; ++i)
{
if(value[i] != 0)
{
while (i <= 1000)
{
printf("%d", value[i]);
++i;
}
putchar('\n');
break;
}
}
return 0;
}
//大数的N次的平方,望采纳.
型,编译器会自动将不是整型数,转换为整型,19.5放到n中也就是19了
#include<stdio.h>
int main(void)
{
int i,k,n,sum;
while(scanf("%d",&n)!=EOF)
{
sum=1;
int a[10000];
for(i=1;i<10000;i++)
a[i]=0;
a[0]=1;
for(k=1;k<=n;k++)
{
for(i=0;i<sum;i++)
a[i]=a[i]*2;
for(i=0;i<sum;i++)
if(a[i]>=10)
{
a[i+1]=a[i+1]+a[i]/10;
if(i+1==sum)sum++;
a[i]=a[i]%10;
}
}
for(i=sum-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
return 0;
}