首页 > 试题广场 >

相反数

[编程题]相反数
  • 热度指数:166 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.

输入描述:
输入包括一个整数n,(1 ≤ n ≤ 10^5)


输出描述:
输出一个整数,表示n的相反数
示例1

输入

1325

输出

6556
将获取到的数字,转换成字符串类型,然后反转字符串,在将反转后的字符串转换成数字,和原来的数字相加就可以了
public class Demo {

    public static void main(String[] args) {

        Scanner sc= new Scanner(System.in);
        int num =sc.nextInt();

        int i = reverseSum2(num);
        System.out.println(i);
    }

    public  static int reverseSum1(int num){
        // 讲获取的num转换成字符串
        String s=""+num;
        // 定义一个反转后的字符串为:""
        String str="";
        // 倒着遍历转换后的字符串
        for (int i = s.length()-1 ; i >= 0; i--) {
            // 获取当前字符
            char c =s.charAt(i);
            // 将字符加到字符串上
            str=str+c;
        }
        // 将获得反转后的字符串转换成数字
        int num1 = Integer.parseInt(str);
        // 获取之和
        int sum=num+num1;
        return sum;
    }

    public  static int reverseSum2(int num){
        // 获取的num转换成字符串
        String s=num+"";
        StringBuffer str = new StringBuffer(s);
        // 反转字符串
        str.reverse();
        String s1=new String(str);
        int num1 = Integer.parseInt(s1);
        // 获取之和
        int sum=num+num1;
        return sum;
    }
}



编辑于 2019-11-23 22:01:46 回复(0)