你是想用大数乘法方法计算吗?
程序如下,数字位数若不够,你自己修改一下 MAXINT 1000 的大小:
#include
#include
#include
#define MAXINT 1000
int bigmult2(int a[],int b[],int *c);
main(){
int a[MAXINT]={2,8,9}; //98*98
int b[MAXINT]={2,8,9};
int c[MAXINT];
int i,j;
for (i=1;i<98;i++){
bigmult2(a,b,c);
for(j=0;j
printf("Big integers multi: ");
for (i=c[0];i>=1;i--) printf("%d",c[i]);
printf("\n");
return 0;
}
int bigmult2(int a[],int b[],int *c)
{
int i,j,len;
for (i=0;i
for (i=1;i<=a[0];i++)
for (j=1;j<=b[0];j++)
{
c[i+j-1]+=a[i]*b[j];
c[i+j]+=c[i+j-1]/10;
c[i+j-1]%=10;
}
len=a[0]+b[0];
while (len>1 && c[len]==0)
len--;
c[0]=len;
return len;
}
=====
可以比较一下近似值: printf("%lf ",pow(98,98));
可以用pow(98,98);
在C语言中,并没有乘法运算符,所以要计算乘方,需要调用系统函数pow。
声明:
double pow(double a, double b);
功能说明:
计算a的b次幂,并返回。
头文件:
math.h