zoukankan      html  css  js  c++  java
  • 牛客网在线编程:数字翻转

    题目:

    对于一个整数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)));
            
        }
    
    }
  • 相关阅读:
    3月工作问题总结
    【读书笔记】linux编程艺术
    项目管理工具 Trac入门
    [node.js]开放平台接口调用测试
    mysql 高并发更新计数问题
    memcache 问题 socket or its streams already null in trueClose call
    hadoop学习笔记
    node.js学习与应用
    mc参数备忘&javajson备忘
    WCF技术剖析_学习笔记之三
  • 原文地址:https://www.cnblogs.com/zlz099/p/8515421.html
Copyright © 2011-2022 走看看