为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.
输入描述:
输入包括一个整数n,(1 ≤ n ≤ 10^5)
输出描述:
输出一个整数,表示n的相反数
输入例子1:
1325
输出例子1:
6556
思路分析:
这个题其实思路很简单,主要考察了javaSE基础中各类型之间的转换,可以巧妙的利用StringBuilder类中的reverse()方法反转字符串,就不用在int类型里用复杂的计算来实现数字的颠倒了。
int—>String—>StringBulider
调用reverse()方法
StringBulider—>String—>int
最后将得出的int值与输入的int值相加即可得到题目中定义的相反数
Java代码实现:
import java.util.Scanner;
public class Xiangfanshu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); //输入一个数n
String str = null; //定义一个字符串
str=String.valueOf(n); //将输入的整形变量n转换为String类型
StringBuilder sb = new StringBuilder(str); //String 转为StringBuilder
StringBuilder sb2 = sb.reverse(); //利用StringBuilder的reverse()方法将字符转反转
int n2=Integer.parseInt(sb2.toString());//最后转回int类型
int result = n+n2;//计算相反数
System.out.println(result);//输出结果
}
}