首页 > 试题广场 >

相反数

[编程题]相反数
  • 热度指数:18493 时间限制: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
import java.util.*;

/**
* 将输入的数字反转,然后和原数相加
* 考虑到需要反转字符串,则可以利用StringBuilder
* 将输入的数字转为字符串后利用循环去除末尾的0
* 这里没有对输入数据进行验证
*/
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        String reverseNum = reverseNumber(number);
        System.out.println(Integer.parseInt(reverseNum)  + number);
    }
    
    public static String reverseNumber(int number) {
        String result = String.valueOf(number);
        while (result.charAt(result.length() - 1) == '0') {
            result = result.substring(0, result.length() - 1);
        }
        
        return new StringBuilder(result).reverse().toString();
    }
}
发表于 2017-10-10 00:58:39 回复(0)
import java.util.*;
public class Main{
  public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        
        StringBuffer sb = new StringBuffer(num);
        StringBuffer sbr = new StringBuffer(num).reverse();

        System.out.println(Integer.parseInt(sb.toString())+Integer.parseInt(sbr.toString()));
    }
}
//自己犯了个小错误,直接给原字符串reverse(),导致原字符串的值改变了。谨记。
发表于 2017-10-04 23:05:01 回复(0)
import java.util.Scanner;
public class Main{
    
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            int n = scan.nextInt();
            System.out.println(solution(n));
        }
    }
    
    public static int solution(int n){
        StringBuilder sb = new StringBuilder(""+n);
        int reverse = Integer.parseInt(sb.reverse().toString());
        
        return reverse+n;
    }
    
}
发表于 2017-09-11 11:19:41 回复(0)