NC1-大整数相加
描述
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。
(字符串长度不大于100000,保证字符串仅由’0’~’9’这10种字符组成)
示例1
输入:
"1","99"
返回值:
"100"
说明:
1+99=100
java代码:
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
StringBuilder sb=new StringBuilder();
int i=s.length()-1,j=t.length()-1;
int carry=0;
int sum;
while(i>=0&&j>=0){
sum=(s.charAt(i)-'0')+(t.charAt(j)-'0')+carry;
carry=sum/10;
int t0=sum%10;
sb.append(t0);
i--;
j--;
}
while(i>=0){
sum=(s.charAt(i)-'0')+carry;
carry=sum/10;
int t0=sum%10;
sb.append(t0);
i--;
}
while(j>=0){
sum=(t.charAt(j)-'0')+carry;
carry=sum/10;
int t0=sum%10;
sb.append(t0);
j--;
}
if(carry>0){
sb.append(carry);
}
String str=sb.reverse().toString();
return str;
}
}
java代码解题2:
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算两个数之和
* @param s string字符串 表示第一个整数
* @param t string字符串 表示第二个整数
* @return string字符串
*/
public String solve (String s, String t) {
// write code here
char[] s1=s.toCharArray();
char[] t1=t.toCharArray();
StringBuilder sb=new StringBuilder();
String restult="";
int num=s1.length>t1.length?s1.length:t1.length;
int[] res=new int[num+1];
int temp=0;
int k=0;
int i=s1.length-1,j=t1.length-1;
while(i>=0&&j>=0){
int a=temp+Integer.parseInt(String.valueOf(s1[i]))+Integer.parseInt(String.valueOf(t1[j]));
temp=a/10;
res[k++]=a%10;
i--;
j--;
}
while(i>=0){
int b=temp+Integer.parseInt(String.valueOf(s1[i]));
temp=b/10;
res[k++]=b%10;
i--;
}
while(j>=0){
int b=temp+Integer.parseInt(String.valueOf(t1[j]));
temp=b/10;
res[k++]=b%10;
j--;
}
if(temp>0){
res[k]=temp;
}
for(int v:res){
sb.append(v+"");
}
restult=sb.reverse().toString();// "08265996771045089025731571375775911506758574079559248265"
char[] ch=restult.toCharArray();
StringBuilder sb1=new StringBuilder();
int m=0;
while(m<=(ch.length-1)&&ch[m]=='0'){
m++;
}
if(m==ch.length){
restult="0";
}
else{
while(m<=ch.length-1){
sb1.append(ch[m]);
m++;
}
restult=sb1.toString();
}
return restult;
}
}
还没有评论,来说两句吧...