描述
做了A+B Problem之后,Yougth感觉太简单了,于是他想让你求出两个数反转后相加的值。帮帮他吧
-
输入
- 有多组测试数据。每组包括两个数m和n,数据保证int范围,当m和n同时为0是表示输入结束。 输出
- 输出反转后相加的结果。 样例输入
-
1234 1234 125 117 0 0
样例输出
-
8642
1232
-
找到了reverse在类里面,那么就很简单了import java.util.*; public class Main { static Scanner in= new Scanner(System.in); public static void main(String[] args) { while(in.hasNext()){ String s1=in.next(); StringBuilder s2=new StringBuilder(s1); s2.reverse(); String s3=in.next(); StringBuilder s4=new StringBuilder(s3); s4.reverse(); if(s1.charAt(0)-'0'==0&&s2.charAt(0)-'0'==0) break; int n=0,m=0; for (int i = 0; i < s2.length(); i++) { n+=(s2.charAt(i)-'0')*Math.pow(10, s2.length()-i-1); } for (int i = 0; i < s4.length(); i++) { m+=(s4.charAt(i)-'0')*Math.pow(10, s4.length()-i-1); } System.out.println((m+n)); } } }
我又回来改进啦:下面附上优化之后的程序:
import java.util.*;
public class Main {
static Scanner in= new Scanner(System.in);
public static void main(String[] args) {
while(in.hasNext()){
String s1=in.next();
String s2=in.next();
if(s1.charAt(0)-'0'==0&&s2.charAt(0)-'0'==0)
break;
int x=0,y=0;
for(int i=s1.length()-1;i>=0;i--)
x=x*10+(s1.charAt(i)-'0');
for(int i=s2.length()-1;i>=0;i--)
y=y*10+(s2.charAt(i)-'0');
System.out.println(x+y);
}
}
} -