• 牛客网在线编程:数字翻转


    题目:

    对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
    如果 X = 123,则rev(X) = 321;
    如果 X = 100,则rev(X) = 1.
    现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
    输入描述:
    输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
    输出描述:
    输出rev(rev(x) + rev(y))的值
    示例1
    输入

    123 100
    输出

    223

    思路:

    将int转换为string,使用栈存储,入栈出栈操作即可完成翻转操作。最终返回将string转化为int。
    在去除数字末尾的0时进行了除10取余判断是否等于0的操作,比较麻烦,网上有简单思路。
    数字翻转的公式是
    nt t = 0;
    while(m>0)
    {
    t=t*10+m%10;
    m=m/10;
    }这样直接去除了转换后数字开头的0
    简单操作为:

     1 int rev(int m)
     2 {
     3     int t=0;
     4     while(m>0)
     5     {
     6         t=t*10+m%10;
     7         m=m/10;
     8     }
     9     return t;
    10 }
    import java.util.*;
    public class Shuzifanzhuan {
        public static int rev(int x){
            while(x%10==0){x/=10;}
            String s = Integer.toString(x);
            Stack<Character> stack = new Stack<Character>();
            for(int i = 0; i <s.length();i++){
                stack.push(s.charAt(i));
            }
            String result="";
            while(!stack.isEmpty()){
                result += stack.pop();
            }
            //System.out.println(result);
            int re = Integer.valueOf(result);
            return re;
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            int x = sc.nextInt();
            int y = sc.nextInt();
            System.out.println(rev(rev(x)+rev(y)));
            
        }
    
    }
  • 相关阅读:
    rabbitmq线上服务器与项目结合的问题总结
    关于RabbitMQ Queue Argument的简介
    rabbitmq代码配置
    python基础篇17-虚环境
    Java-实体与集合转换
    Java-精确计算工具类
    Java-汉字繁体拼音转换
    Java-集合条件筛选
    Java-发邮件
    Java-MD5
  • 原文地址:https://www.cnblogs.com/zlz099/p/8515421.html
Copyright © 2020-2023  润新知