Long.MAX_VALUE=922,3372,0368,5477,5807
这个值比100,0000,0000要大很多
我想你需要的大概是哪种算个100位的数的加减运算吧
没具体写代码 写点思路吧
需求为计算a+b a-b a*b
先说加
1.可以将a和b用字符串读入
2.将其转化为int[] a1和b1
2.5 判断大小 将他们反向 并转为int[max.length+1] a2,b2
3.从个位开始遍历 使用加法原则即
for (i=0,x=0;i<maxa2.length;i++)//x为进位
{
sum[i]=(a2[i]+b1[i])%10+x;
x=(a2[i]+b1[i])/10;
}
4.逆向打印sum数组
关于减法也是类似的思路,
而对于乘法则特殊一些 pro.length=a1.length+b1.length+1
需要进行一次双重循环
for(i=0,x=0;i<pro.length;i++)
{
for(j=0,pro=x;j<b1.length;j++)
{
pro=pro+a1[j]*b1[i-j];
}
pro[i]=pro%10;
x=pro/10;
}
//x为进位
|