zoukankan      html  css  js  c++  java
  • poj1312

    java中StringBuffer类似于C++中的String,append函数可以在其后面添加字符,reverse可以反转。

    java中BigInteger的intValue方法可以将其转为int。

    View Code
    import java.io.*;
    import java.util.*;
    import java.math.*;
    
    
    public class Main {
        final static int maxl = 50;
        static String translate(String temp)
        {
            StringBuffer ret = new StringBuffer(temp);
            for (int i = ret.length() - 3; i > 0; i -= 3)
                ret.insert(i, ",");
            return ret.toString();
        }
        static void translateToNumber(String st)
        {
            BigInteger ret = new BigInteger("0");
            for (int i = 0; i < st.length(); i++)
            {
                ret = ret.multiply(BigInteger.valueOf(26));
                ret = ret.add(BigInteger.valueOf(st.charAt(i) - 'a' + 1));
    //            System.out.println(ret);
            }
            System.out.printf("%-22s%s\n", st, translate(ret.toString()));
        }
        
        static void translateToString(String st)
        {
            BigInteger a = new BigInteger(st);
            StringBuffer ans = new StringBuffer("");
            while (!a.equals(BigInteger.ZERO))
            {
                BigInteger temp = a.mod(BigInteger.valueOf(26));
                if (temp.equals(BigInteger.ZERO))
                {
                    ans.append("z");
                    a = a.subtract(BigInteger.valueOf(26));
                }else
                    ans.append((char) (temp.intValue() + 'a' - 1));
                a = a.divide(BigInteger.valueOf(26));
    //            System.out.println(a);
            }
            ans.reverse();
            System.out.printf("%-22s%s\n", ans, translate(st));
        }
        
        public static void main(String[] args) throws FileNotFoundException
        {
    //        Scanner cin = new Scanner(new FileInputStream("t.txt"));
            Scanner cin = new Scanner(System.in);
            while (true)
            {
                String st = cin.next();
                if (st.equals("*"))
                    break;
                if (st.charAt(0) <= 'z' && st.charAt(0) >= 'a')
                    translateToNumber(st);
                else
                    translateToString(st);
            }
        }
    }
  • 相关阅读:
    HDU 4691
    cin和scanf的速度差别
    一点点webservice的小知识
    Geetest 极验验证 验证图片拼图
    web api post传一个参数时 值永远是null
    关于支付宝支付的
    发布网站后只能在服务器上访问 外网访问不了??
    sidePagination: "server"和responseHandler: responseHandler
    .net 找回密码的第一步 第二步 第三步的进程条
    关于设置一个全局只读变量来实现验证
  • 原文地址:https://www.cnblogs.com/rainydays/p/2866282.html
Copyright © 2011-2022 走看看