网上看到好多十进制转n进制的,很少有n进制转十进制的,今天来分享一种我的解法,欢迎大家交流批评。先上一段十二进制转十进制的代码,n进制转十进制也一样。

import java.util.Scanner;public class n进制转10进制 {static int N=12;//进制public static void main(String args[]) {//将十二进制的2B转为10进制System.out.println(transfrom("2B"));}static int transfrom(String str){char[] arr = str.toCharArray();int sum=0;for(int i=0;i<arr.length;i++){sum=(int) (help(arr[i])*Math.pow(N, arr.length-i-1))+sum;}return sum;}//辅助方法,主要是将A,B,C字符转数字,这是十进制的数字static int help(char c){if(c=='0')return 0;if(c=='1')return 1;if(c=='2')return 2;if(c=='3')return 3;if(c=='4')return 4;if(c=='5')return 5;if(c=='6')return 6;if(c=='7')return 7;if(c=='7')return 8;if(c=='9')return 9;if(c=='A')return 10;if(c=='B')return 11;return -1;}
}

看完发现思路很简单但,就是将n进制每一位字符转为十进制数字,然后求和即可。下面来一道练习题。

猪八戒网2017校园招聘 移动开发工程师 在线考试
编程题 | 20分 1/1
龟兔赛跑
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
小A和小B正就龟兔赛跑的问题进行辩论。小A说,兔子永远追不上乌龟,因为如果龟兔一开始相距10米(兔子在乌龟后面),那么当兔子跑了10米的时候,乌龟又会向前走了1米;当兔子再跑一米的时候,乌龟又向前走了0.1米……这样乌龟和兔子之间总会存在一段距离,不管多小。
小A知道小B的数学不好,所以加上赌注说如果一方无法反驳,就要满足另一方一个要求。为了难倒小B,小A采用了12进制作为输入!为此,小B请聪明的你帮忙解决问题。
小B认为,如果已知了乌龟、兔子的速度以及最初相距的距离,那么只要知道了兔子赶上乌龟的第一个整数秒,就可以驳倒小A了,你怎么看?
输入
输入数据第一行为一个10进制整数T(T<=100),表示有T组测试数据。每组输入数据包含三行,每行为一个12进制整数,为vt, vg, d,分别代表兔子的速度(m/s),乌龟的速度(m/s),在第0秒的龟兔之间的距离(m),输入数据保证0<vg<vt<=BBBB,0<d<=BBBBBBBB,且每个整数合法(没有前缀0)。
输出
输出数据采用10进制整数,代表最小的整数秒t,使得在t秒时兔子追上了乌龟。样例输入
2
5
2
9
10
A
1B
样例输出
3
12

题解如下:其中主要考察的就是十二进制转十进制。

package zbj;import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner reader = new Scanner(System.in);int n = reader.nextInt();//在读数字后面紧接着读字符串,一点要处理数字后面的回车,切记,切记,切记啊reader.nextLine();for(int i=n;i>0;i--){String vt = reader.nextLine();String vg = reader.nextLine();String d = reader.nextLine();int t=trans(vt);int g=trans(vg);int dd=trans(d);int T=dd/(t-g);//余数的问题没考虑到if(dd%(t-g)!=0)T=T+1;System.out.println(T);}}static int trans(String str){char[] arr = str.toCharArray();int sum=0;for(int i=0;i<arr.length;i++){sum=(int) (help(arr[i])*Math.pow(12, arr.length-i-1))+sum;}return sum;}static int help(char c){if(c=='0')return 0;if(c=='1')return 1;if(c=='2')return 2;if(c=='3')return 3;if(c=='4')return 4;if(c=='5')return 5;if(c=='6')return 6;if(c=='7')return 7;if(c=='7')return 8;if(c=='9')return 9;if(c=='A')return 10;if(c=='B')return 11;return 0;}}

十二进制转十进制(n进制转十进制也一样)相关推荐

  1. 试题13 进制转换(十进制-R进制)

    题目: 输入一个十进制数N,将它转换成R进制数输出.在10<=R<=16的情况下,用'A'表示10,用'B'表示11,用'C'表示12,用'D'表示13,用'E'表示14,用'F'表示15 ...

  2. 七进制转十进制java_Java基础(进制转换-)

    进制概述: 进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的"正"字计数法,以及类似的tally mark计数). 对于 ...

  3. js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制

    var Stack = (function(){var items = new WeakMap();//先入后出,后入先出class Stack{constructor(){items.set(thi ...

  4. linux转换二进制命令,Linux--二进制,十进制,十六进制如何转换,单位换算

    进制转换 十进制 数值:0~9 数位:123 位权:百位十位个位 二进制 数值:0~1 数位:10 位权:128-64-32-16-8-4-2-1 十六进制 数值 0~9,A(10),B(11),C( ...

  5. 1475 m进制转十进制

    1475 m进制转十进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解 题目描述 Description 将m进制数n转化成一个十进制数 m< ...

  6. 二进制-八进制-十进制-16进制之间的转换

    进制之间的转换 主要用到连个函数: Convert.ToInt32(str,numbased):将字符串转成str,按照numbeased指定的进制转成10进制数: Convert.ToString( ...

  7. C++其他进制转十进制

    C++其他进制转十进制 开发工具与关键技术:C++.VisualStudio 作者:何任贤 撰写时间:2019年04月15日 在学习C++基础过程中,接触到进制转换,个人想要尝试一下用C++来写一个进 ...

  8. java 进制转换 十进制转二,八,十六进制

    十进制转其他进制 因为在java中位运算符是直接对数值的二进制数进行操作的 并且 写的是二进制数在输出和操作时是以十进制数的形式: 所以十进制转二,八,十六进制:就已经实现了二进制,八进制,十进制,十 ...

  9. 进制转换练习-其它进制转换为十进制

    公式 数值*(进制**(位数-1))+...+... 其它进制转十进制,手工推算演练 int把其它进制转十进制的方法

  10. Bailian3255 十进制到六进制【进制】

    十进制到六进制 总时间限制: 1000ms 内存限制: 65536kB 描述 进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数. 输入 输入为第一行是组数n,后面n行是需要进制转 ...

最新文章

  1. linux 下根据cpp文件快速书写头文件
  2. 个人代码库のC#千千静听 - 桌面歌词 (功能模拟)
  3. 经典问题:微服务和分布式的区别
  4. python3交互模式下 按上翻箭头显示乱码_CentOS 6.3中,Python-2.7.3交互模式下方向键、退格键等出现乱码...
  5. nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)
  6. struts2中的constant配置详解
  7. 关于公司通过CMMI3级认证
  8. 四个变量的图表怎么做_EXCEL系列之基础图表总结
  9. php curl CURLOPT_TIMEOUT_MS 小于1秒 解决方案
  10. 用户id oracle设置,Oracle中的架构,用户和功能ID
  11. Javaweb网易云音乐
  12. 反向题在测试问卷信效度_关于调查问卷的信度和效度检验
  13. android判断是否是蓝牙耳机,如何验证蓝牙耳机是否在Android上连接?
  14. Maix_Bit官方烧录软件和IDE的使用
  15. 视频剪辑素材哪里找?这个几个网站就够了。
  16. 计算机三级数据库考试知识点及题库总结(最全)
  17. 为什么模型loss为负
  18. BFS 巡逻机器人
  19. SOLR7实践(二)--DIH配置及使用
  20. 基于OpenCV的形状检测

热门文章

  1. HDOJ 5143 NPY and arithmetic progression DFS
  2. 利用WinEdt修改图片格式为eps
  3. 手动设置ip 访问内网地址
  4. WT2003HX语音芯片IC在儿童玩具产品的应用设计方案
  5. 自己用GO语言编写的AliDDNS动态域名更新服务,routeros
  6. 肇东一中2021高考成绩查询,肇东一中高考录取喜报
  7. artifactory 误删除恢复
  8. 水果店差别定价策略,水果店的单品定价公式
  9. 02 敏捷开发测试流程
  10. ajax有哪些回调函数