题目:
以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。示例:
输入: "1","99" 返回值: "100" 说明: 1+99=100思路:
第一种方法:强制类型转换(面试中不要直接使用,题目的考点在于模拟 加法的运算过程 )
第二种方法:
获取2个字符串长度,进行遍历
对应个、十、百... 位数进行取值,再运算,取余,对余数追加
代码:
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public static String solve(String s, String t) { // write code here Long m = Long.valueOf(s); Long n = Long.valueOf(t); Long a = m + n; return a.toString(); } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * * @param s string字符串 表示第一个整数 * @param t string字符串 表示第二个整数 * @return string字符串 */ public static String solve1 (String s, String t) { // write code here StringBuilder sb = new StringBuilder(); int sl = s.length() - 1; int tl = t.length() - 1; int enter = 0; int remainder = 0; while (sl >= 0 || tl >= 0 || enter > 0) { int snum = sl >= 0 ? s.charAt(sl) - '0' : 0; // int 和 char可以直接运算 int tnum = tl >= 0 ? t.charAt(tl) - '0' : 0; int r = snum + tnum + enter; enter = r / 10; remainder = r % 10; sb.append(remainder); sl--; tl--; } return sb.reverse().toString(); }