蓝桥杯 基础 basic13 十进制转八进制(气死我了气死我了)
Posted 方方的小迷妹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯 基础 basic13 十进制转八进制(气死我了气死我了)相关的知识,希望对你有一定的参考价值。
这道题真是气死我了
一开始没看到十六进制数的长度是100000 long 保存wa了
后来大数嘛 大数超时了!!!
阿西 你100000位啊 还要逐个数位压栈保存输出呢 你还有10组测试样例 就给一秒啊你 还有java选手呢
哼 伤心
看我完美的代码
package lanqiao; import java.math.BigInteger; import java.util.Scanner; import java.util.Stack; public class basic12 { public static String c = new String(); public static Stack<BigInteger> s = new Stack<BigInteger>(); public static int t,cur; public static long cur2; public static int i; public static BigInteger sum; public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); t = in.nextInt(); c = in.nextLine(); while(t-- != 0) { sum = BigInteger.ZERO; c = in.nextLine(); for(i = 0;i < c.length();i++) { cur = (int)c.charAt(i) - ‘A‘; if(cur >= 0) { cur2 = cur + 10; sum = sum.multiply(BigInteger.valueOf(16)); sum = sum.add(BigInteger.valueOf(cur2)); } else { cur2 = (long)c.charAt(i) - ‘0‘; sum = sum.multiply(BigInteger.valueOf(16)); sum = sum.add(BigInteger.valueOf(cur2)); } } //System.out.println(sum); while(!sum.equals(BigInteger.ZERO)) { s.push((sum.mod(BigInteger.valueOf(8)))); sum = sum.divide(BigInteger.valueOf(8)); } while(!s.empty()) { System.out.print(s.peek());; s.pop(); } System.out.println(); } } }
以上是关于蓝桥杯 基础 basic13 十进制转八进制(气死我了气死我了)的主要内容,如果未能解决你的问题,请参考以下文章