#include <iostream>
#include <string>
using namespace std;
#define MAX 100
#define BASE 10000
int a[MAX];int b[MAX];
void init()
{
int i=0;
for(i=0;i<MAX;i++)
{
a[i]=0;
b[i]=0;
}
}
void add(int a[],int Max,int b[])
{
int i,array=0;
for(i=Max-1;i>=0;i--)
{
array+=a[i]+b[i];
a[i]=array%BASE;
array/=BASE;
}
}
void del(int a[],int Max,int b[])
{
int i,array=0;
for(i=Max-1;i>=0;i--)
{
array=a[i]-b[i];
if(array<0)
{
a[i-1]--;
a[i]=BASE+array;
}
else
{
a[i]=array;
}
}
}
void multiply(int a[],int Max,int b) //大数乘小数
{
int i,array=0;
for (i=Max-1; i>=0; i--)
{
array+=b*a[i];//进位加上该位置的数
a[i] = array%BASE;//余数
array /= BASE; //进位
}
}
void output ( int ctl[],int Max )//(输出是从0开始,所以高位的数全部放0)
{
int i = 0;
while ( i < Max && ctl[i] == 0 )
{
i ++ ; //去前导0
}
printf ( "%d", ctl[i++] ); //第一个数的0就不输出啦。
while ( i < Max )
{
printf ( "%04d", ctl[i++] );
}
putchar ( '\n' );
}
void divide(int a[], int Max, int b) //大数除小数(把上一个数的余数给下一个数,加上后,继续除)
{
int i,div=0;
for (i=0;i<Max; i++)
{
div = div*BASE + a[i];
a[i] = div / b;
div %= b;
}
}
int main()
{
init();
a[6]=1235;
a[5]=5642;
a[4]=56;
a[3]=4;
b[6]=1124;
b[5]=110;
b[4]=9999;
return 0;
}
大数加减乘除
最新推荐文章于 2020-01-12 22:35:21 发布