C语言 的溢出问题
编程精确计算2的N次方。(N是介于100和1000之间的整数)。
输入
正整数N (100≤N≤1000)
输出
2的N次方
这个怎么做啊?溢出 怎么解决呀?有谁知道的,帮我看看吧。
程序代码:#include<stdio.h>
#include<malloc.h>
int i=1;
void double_(int n)
{
int *p,*q,j,s,jw=0;
p=(int *)malloc(sizeof(int));
*p=1;
for(j=1;j<=n;j++)
{
jw=0;
for(s=0;s<i-1;s++)
{
if((*(p+s)*2+jw)>=10)
{
*(p+s)=(*(p+s))*2+jw-10;
jw=1;
}
else
{
*(p+s)=(*(p+s))*2+jw;
jw=0;
}
}
if((*(p+s)*2+jw)>=10)
{
i+=1;
q=p+i-1;
q=(int *)malloc(sizeof(int));
*(p+i-1)=1;
*(p+s)=(*(p+s))*2+jw-10;
}
else *(p+s)=(*(p+s))*2+jw;
}
for(j=i;j>=1;j--)
printf("%d",*(p+j-1));
printf("\n");
}
void main()
{
int n;
scanf("%d",&n);
double_(n);
}