java编程,两个p进制数相乘

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:38:48
设有两个p进制数amam-1……a1a0和bnbn-1……b1b0,其中m,n,p>0,0<=ai,bi<p。要求编写程序计算两个数的积,并表示为p进制数。编程语言不限(请勿使用自然语言描述)。

请java高手帮帮小弟,等着急用(在线等待,事后追加分数)
能不能说下编程的思路啊~~~~

/**
* @author Otacon
*/
public class BaseP{
public static void main(String[] args){
int[] a1 = new int[]{15,5,7}; //以p进制所表示的数。现在的数代表16进制的0xF57
int[] a2 = new int[]{2,13,1};
int base = 16; // 进制。现在是16进制。
int[] result = new int[a1.length*2];
for(int i = 0; i < result.length; i++){
result[i] = 0;
}

for(int j = a1.length-1; j >= 0 ; j--){
for(int i = a2.length-1; i >= 0 ; i--){
result[i+j+1] += a1[j]*a2[i]; //做乘法,先不考虑进位
}
}

for(int i = result.length-1; i > 0; i--){ //处理进位
while(result[i] >= base){
result[i] -= base;
result[i-1]++;
}
}

boolean showZero = false;
for(int i = 0; i < result.length; i++){ //打印得出的p进制数。每个数位用[]框住。
if(result[i] ==0 && !showZero)
continue;
showZero = true;
System.out.print("["+result[i]+"]");
}
System.out.println();
}
}

public class RadixMult