2018网易校招试题2

来源:互联网 发布:mysql ibtmp1 删除 编辑:程序博客网 时间:2024/06/04 23:25

为了得到一个数的”相反数”,我们将这个数的数字顺序颠倒,然后再加上原先的数得到”相反数”。例如,为了得到1325的”相反数”,首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.

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

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

输入例子1:
1325

输出例子1:
6556

这个题我的思路是先判断n是不是个位为0的数,如果是则去掉0,不是则将数首尾颠倒,这样思路就清晰明了

import java.util.Scanner;class Reverse1{     void Reversed1(int n){        int sum = 0;        int m=n;        String c1="";        if(n%10==0){               while(m%10==0){   //若n尾数为0,则除以10                m/=10;            }        }             String s=Integer.toString(n);   //将数字转换为字符串             for (int i = s.length() - 1; i >= 0; i--){                  c1 += s.charAt(i);  //与上一题一样,将字符串反向输出,代替reverse(),                 }             Integer c2= Integer.parseInt(c1);  //再将字符串转换为数值             sum=n+c2;            System.out.println(sum);    }}public class Main{    public static void main(String[] args){        Reverse1 r= new Reverse1();        Scanner scan= new Scanner(System.in);        r.Reversed1(scan.nextInt());    }}
原创粉丝点击