试题 算法训练 P0703
资源限制
时间限制:1.0s 内存限制:256.0MB
一个整数的反置数指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。例如,如果用户输入:435和754,则输出结果为199。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。
输入:
435 754
输出:
199
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String n=sc.next();
String m=sc.next();
char a[]=new char[n.length()];
char b[]=new char[m.length()];
int l=n.length()-1;
int k=m.length()-1;
for (int i = 0; i < a.length; i++) {
a[i]=n.charAt(l--);
}
for (int i = 0; i < b.length; i++) {
b[i]=m.charAt(k--);
}
String c="";
int e=0;
for (int i = 0; i < a.length; i++) {
c+=""+a[i];
}
e=Integer.valueOf(c);
String d="";
int f=0;
for (int i = 0; i < b.length; i++) {
d+=""+b[i];
}
f=Integer.valueOf(d);
int g=e+f;
String h=""+g;
int j=h.length()-1;
char p[]=new char[h.length()];
for (int i = 0; i < h.length(); i++) {
p[i]=h.charAt(j--);
}
int num=0;
for (int i = 0; i < p.length; i++) {
if(p[i]=='0') {
num++;
}else {
break;
}
}
for (int i = num; i < p.length; i++) {
System.out.print(p[i]);
}
}
}