算法练习记录
1、输入两个字符串数据,返回加法运算后的值?
public static String addStrings(String num1, String num2) {
StringBuilder res = new StringBuilder();
int i = num1.length() - 1;
int j = num2.length() - 1;
int carry = 0;
while (i >= 0 || j >= 0 || carry != 0) {
/**字符’0’的ascii码是48
*数字0的值是0
*所以’0’和0差48
*num1.charAt(i) - '0'是为了转换字符到数字
*/
int x = i >= 0 ? num1.charAt(i) - '0' : 0;
int y = j >= 0 ? num2.charAt(j) - '0' : 0;
int sum = x + y + carry;
res.append(sum % 10); //保存当前位的值
carry = sum / 10; //保存进到上一位的值
i--;
j--;
}
return res.reverse().toString();
}
public static void main(String[] args) {
System.out.println(addStrings("123", "456")); // 输出: 579
System.out.println(addStrings("999", "1")); // 输出: 1000
}
浙公网安备 33010602011771号