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); }