蓝桥杯 十六进制转八进制
来源:互联网 发布:java多线程计算器 编辑:程序博客网 时间:2024/05/14 16:03
最近在做蓝桥杯上的算法题的时候,觉得有一些东西需要自己小结一下,方便以后查阅。
首先,在java里有专门的函数可以调用,将十六进制转化为八进制。我试了一下在我的eclipse运行ok了,但是提交到蓝桥杯的评测系统上就是通不过。以下是代码:
public static void main(String[] args){Scanner scan = new Scanner(System.in);int n=scan.nextInt();String[] array1 = new String[n];String[] array2 = new String[n];for(int i=0;i<array1.length;i++){String m=scan.next();array1[i]=m;}for(int i=0;i<array2.length;i++){array2[i]=Long.toOctalString(Long.parseLong(array1[i],16));System.out.println(array2[i]);}}
后来发现与题目要求不符,然后又想了另外一种方法:
static int fun(String s){ int n = s.length(); int sum =0,a=1; for(int i =n-1;i>=0;i--){ char b =s.charAt(i); if(b >='0'&&b<='9') sum =sum+(b-'0')*a; else if(b>='A'&&b<='F') sum+=(b+10-'A')*a; a=a*16; } return sum; } public static void fun8(int x){ Stack<Integer> st =new Stack<Integer>(); while(x>0){ st.push(x%8); x=(int)(x/8); //注意:x为int类型 取整后为零 } while(!st.isEmpty()){ System.out.print(st.peek()); st.pop(); } System.out.println(); } public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n =sc.nextInt(); String[] array1=new String[n]; int[] x =new int[n]; for(int i =0;i<array1.length;i++){ String m =sc.next(); array1[i] = m; } for(int i=0;i<array1.length;i++) { x[i] =fun(array1[i]); } for(int i=0;i<array1.length;i++) fun8(x[i]); }
第二种方法先把十六进制转化为十进制(fun()函数)然后再用了栈来存放每一位十进制转换为八进制(fun1()函数)的数据。
while(!st.isEmpty()){ System.out.print(st.peek()); st.pop();
此处栈的操作起初我也没搞明白,后来想想。应该是这样理解的:st.peek()函数即指向栈顶数据,然后打印出栈顶数据。st.pop()弹栈函数把栈顶数据弹出栈,判断栈非空则继续打印出新的栈顶数据,直到栈为空。
0 0
- 蓝桥杯 十六进制转八进制
- 蓝桥杯--十六进制转八进制。。。
- 蓝桥杯 十六进制转八进制
- 蓝桥杯:十六进制转八进制
- 蓝桥杯 十六进制转八进制
- 蓝桥杯 十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- 蓝桥杯-十六进制转八进制
- [蓝桥杯]十六进制转八进制
- [蓝桥杯]十六进制转八进制
- 蓝桥杯十六进制转八进制,大数。
- 蓝桥杯基础训练 十六进制转八进制
- 蓝桥杯:十六进制转八进制算法
- 蓝桥杯JAVA 十六进制转八进制
- 关于蓝桥杯十六进制转八进制
- 蓝桥杯 基础训练 十六进制转八进制
- ZigZag Conversion 锯齿形转换字符串
- 一生中错过多少次,就像昨夜下了一场雨,而我却在睡梦中
- Android之过渡动画
- Linux五种IO模型性能分析
- Web前端开发人员实用Chrome插件收集
- 蓝桥杯 十六进制转八进制
- 计算某段代码的运行时间
- 机器学习课程练习(四)——softmax
- 转:程序员关于读书和选书
- explicit构造函数
- 服务器架设:CentOS搭建LAMP详细教程
- matlab编程与工程应用(第二版) 第六章 自定义函数 笔记
- Attribute value "xx" is quoted with " which must be escaped when used within the
- win8下安装.NET Framework 3.5步骤