java实现两个大数的相加
2012-03-22 18:55 金融与IT的极速狂想曲 阅读(419) 评论(0) 编辑 收藏 举报对于大数,一般的数据类型无法存储,可以用字符串来处理。
public class addBigData {
public static void main(String[] args)
{
char[] str="111111111111111111111111111".toCharArray();
char[] str1="4343999999999999999999999999999".toCharArray();
int maxS=(str.length>=str1.length)?str.length:str1.length;
int minS=(str.length>=str1.length)?str1.length:str.length;
int carry=0;
char[] ch=new char[maxS+1];
int temp;
for(int i=0;i<minS;i++)
{
temp=str[i]+str1[i]+carry-48*2;
if(temp>=10)
{
carry=1;
ch[i]=(char)(temp-10+48);
}
else
{
carry=0;
ch[i]=(char)(temp+48);
}
}
if(carry==1)
{
for(int i=minS;i<maxS;i++)
{
temp=str1[i]+carry-48;
if(temp>=10)
{
carry=1;
ch[i]=(char)(temp-10+48);
}
else
{
ch[i]=(char)(temp+48);
for(int j=minS+1;j<maxS;j++)
{
ch[j]=str1[j];
}
break;
}
}
if(carry==1)
{
ch[maxS]='1';
}
for(int i=0;i<ch.length;i++)
{
System.out.print(ch[i]);
}
System.out.println();
}
else
{
for(int i=minS;i<maxS;i++)
{
ch[i]=str1[i];
}
for(int i=0;i<ch.length-1;i++)
{
System.out.print(ch[i]);
}
System.out.println();
}
}
}