实现两个大数的加法计算。该题目需要学生实现3个静态方法:Transform( )、BigNumAdd( )、Display()。
函数接口定义:
public static void Transform(String s1, String s2, int[] a, int[] b) //两个数组的对齐处理
public static int[] BigNumAdd(int[] a, int[] b) //两个数组的加法
public static void Display(int[] a)
注意三个方法的参数!
### 裁判测试程序样例:
```Java
import java.util.Scanner;
public class Main {
public static void main(String[] args){
String tempa, tempb;
Scanner input = new Scanner(System.in);
tempa = input.nextLine();
tempb = input.nextLine();
int c = Math.max(tempa.length(), tempb.length());
int[] a = new int[c] ;
int[] b = new int[c];
int[] result = new int[c+1];
Transform(tempa, tempb, a, b);
result = BigNumAdd(a,b);
Display(result);
}
/* 请在这里填写答案 */
}
输入样例:
在这里给出一组输入。例如:
12345
99
结尾无空行
输出样例:
在这里给出相应的输出。例如:
12444
结尾无空行
代码:
public static void Transform(String s1, String s2, int[] a, int[] b){//duiqi
int len1=s1.length();
int len2=s2.length();
int len=len1;
int i,j;
if(len1<len2){
len=len2;
}
for(i=len-1,j=len1-1;j>=0;j--,i--){
a[i]=s1.charAt(j)-'0';
}
for(i=len-1,j=len2-1;j>=0;j--,i--){
b[i]=s2.charAt(j)-'0';
//System.out.print(b[i]);
}
}
public static int[] BigNumAdd(int[] a, int[] b) //两个数组的加法
{
int len1=a.length;
int len2=b.length;
int len=len1,i;
int sum[]=new int [len];
if(len1<len2)len=len2;
for(i=len-1;i>=0;i--){
sum[i]=sum[i]+a[i]+b[i];
if(sum[i]>=10&&i!=0){
sum[i]=sum[i]-10;
sum[i-1]++;
}
}
return sum;
}
public static void Display(int[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
}
仅存档