我的想法是用字符串按位相加,超过10的进位。当然字符串长短不一的话需要补0;
下面是我的代码,有点小菜。
public static int[] sum(String a,String b)
{
if(a.length()>b.length())
{
for(int i=0;i<a.length()-b.length();i++)
{
b="0"+b;
}
}
if(b.length()>a.length())
{
for(int i=0;i<b.length()-a.length();i++)
{
a="0"+a;
}
}
int[] s= new int[a.length()+1];
int y=0;
for(int i=a.length()-1;i>=0;i--)
{
y=Integer.parseInt(a.charAt(i)+"")+Integer.parseInt(b.charAt(i)+"");
s[i+1]+=y;
if(s[i+1]>=10)
{
s[i]=1;
s[i+1]=s[i+1]%10;
}
}
if(s[1]>=10)
{
s[0]=1;
s[1]=s[1]%10;
}
return s;
}
public static void main(String[] args) {
String o = "";
for(int i=0;i<sum("11111111111111111111","99999999999999999999").length;i++)
{
o+=sum("11111111111111111111","99999999999999999999")[i];
}
System.out.println(o);
}
}