Java面试题
----实现两个大整数的相乘运算过程
public static void main(String[] args) {
//定义两个数组来存储两个整数
int[] arr1={3,2,1}; //123
int[] arr2={5,2,1}; //125
//定义数组来存储结果
int[] result=new int[arr1.length+arr2.length]; //结果的最大位数
//通过嵌套循环来实现两个整数相互乘积
for (int i=0;i<arr1.length;i++){
for (int j=0;j<arr2.length;j++){
//对应位置求和---两个数组下标之和为新的数组下标
result[i+j]+=arr1[i]*arr2[j];
}
}
for (int i=0;i<result.length-1;i++){ //只能遍历到倒数第二位因为每次循环需要操作两位数
//把当前的数组元素值赋值给新变量,就可以保存这个值
int temp=result[i];
//对10进行取余---一定是个位数
result[i] = result[i] % 10;
//进位
result[i+1]+=temp/10;
}
//遍历结果
//倒着遍历
for (int i=result.length-1;i>=0;i--){
System.out.print(result[i]);
}
}