
import java.util.ArrayList;
import java.util.List;
public class Account {
public String AccountB(String strA,String
strB){
List<StrNum>
numA=getStrNum(strA);
List<StrNum>
numB=getStrNum(strB);
List<StrNum>
numAcc=new ArrayList<StrNum>();
for(int
i=0;i<numA.size();i++){
for(int
j=0;j<numB.size();j++){
int
acc=numA.get(i).getVal()*numB.get(j).getVal();
List<StrNum>
numTmp=getStrNum(acc+numA.get(i).getZero()+numB.get(j).getZero());
numAcc=StrNumSum(numAcc,numTmp);
}
}
return
StrNum2String(numAcc);
}
public List<StrNum>
StrNumSum(List<StrNum>
numA,List<StrNum> numB){
String
strA=StrNum2String(numA);
String
strB=StrNum2String(numB);
String strSum="";
int i=1;
int stepNum=0;
while(!(i>strA.length()&&i>strB.length())||stepNum>0){
int
valA=0,valB=0;
if(i<=strA.length())valA=new
Integer(""+strA.charAt(strA.length()-i));
if(i<=strB.length())valB=new
Integer(""+strB.charAt(strB.length()-i));
int iSum=new
Integer(valA+valB+stepNum);
String
sSum="0"+iSum;
stepNum=new
Integer(sSum.substring(0,sSum.length()-1));
sSum=""+sSum.charAt(sSum.length()-1);
strSum=sSum+strSum;
i++;
}
return getStrNum(strSum);
}
public List<StrNum>
getStrNum(String str){
List<StrNum>
num=new ArrayList<StrNum>();
for(int
i=0;i<str.length();i++){
int iVal=new
Integer(""+str.charAt(i));
int
lenOfZero=str.length()-i-1;
num.add(new
StrNum(iVal,lenOfZero));
}
return num;
}
public String
StrNum2String(List<StrNum>
num){
if(num==null||num.size()==0)return
"";
String tmp="";
for(int
i=0;i<num.size();i++){
tmp+=num.get(i).getVal();
}
if(num.get(num.size()-1).getLenOfZero()>0){
tmp+=num.get(num.size()-1).getZero();
}
return tmp;
}
private class StrNum{
int val;
int lenOfZero;
public StrNum(int val,int
lenOfZero) {
this.val=val;
this.lenOfZero=lenOfZero;
}
public String getZero(){
String
strZero="";
for(int
i=0;i<lenOfZero;i++){
strZero+="0";
}
return
strZero;
}
public int getVal() {
return
val;
}
public void setVal(int val)
{
this.val =
val;
}
public int getLenOfZero()
{
return
lenOfZero;
}
public void setLenOfZero(int
lenOfZero) {
this.lenOfZero
= lenOfZero;
}
}
public static void main(String[] args) {
Account acc=new
Account();
System.out.println(acc.AccountB("152489456578963245635452152489456578963245635452152489456578963245635452152489456578963245635452",
"152489456578963245635452152489456578963245635452152489456578963245635452152489456578963245635452"));
}
}
效率很低,只是用最笨的办法做了。别笑话。
加载中,请稍候......