华为机试:进制转换

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10

Java:

 1 import java.util.Arrays;
 2 import java.util.Scanner;
 3
 4
 5 public class Main {
 6
 7     public static void main(String[] args) {
 8         Scanner sc=new Scanner(System.in);
 9         while(sc.hasNext()){
10             int count=0;
11             String s = sc.nextLine();
12             for(int i = s.length()-1; i > 1; i--){
13                 int temp_num;
14                 switch (s.charAt(i)) {
15                 case ‘A‘:
16                     temp_num=10;
17                     break;
18                 case ‘B‘:
19                     temp_num=11;
20                     break;
21                 case ‘C‘:
22                     temp_num=12;
23                     break;
24                 case ‘D‘:
25                     temp_num=13;
26                     break;
27                 case ‘E‘:
28                     temp_num=14;
29                     break;
30                 case ‘F‘:
31                     temp_num=15;
32                     break;
33
34                 default:
35                     temp_num = Integer.parseInt(s.substring(i, i+1));
36                 }
37                 count+=temp_num*Math.pow(16, s.length()-i-1);
38             }
39             System.out.println(count);
40         }
41         sc.close();
42     }
43
44 }
时间: 2024-11-05 02:38:39

华为机试:进制转换的相关文章

华为笔试——C++进制转换

题目:2-62进制转换 题目介绍:输入一个n1 进制的整数(包括负数),将其转换成n2 进制,其中n1 .n2 的范围是 [ 2,62 ] .每个数字的范围是0-9.a-z.A-Z.不用考虑非法输入. 输入: n1 n2 n1 进制整数 输出: n2 进制整数 例: 输入: 8 16 -1352460 输出: -5d530 分析: 这道题目需要考虑几点:负整数的输入:将输入的n1 进制的数转换成10 进制的数,再用长除法将这个10 进制的数转换成 n2 进制的数:a-z和A-Z与其代表的整数的相

华为机试—“十七进制”转“十进制”

题目:"十七进制"转"十进制" 实现"十七进制"转"十进制"算法:输入一个十七进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF. #include<stdio.h> #include<string.h> void solve(char *s) { int len=strlen(s); int i=0; int ans=0; while(i&

[编程题-华为]进制转换

[编程题] 进制转换 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串.(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该数值的十进制字符串. 输入例子: 0xA 输出例子: 10 #include<iostream> #include<string> using namespace std; int toDigit(char c) { if(c>='a' && c<='f') return c-'a'

华为机试—介绍、剖析、建议

一.华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005).Visual C++.VC 6.0.Eclipse(Java) 题量:共3题 初级题--60分--3组测试数据 中级题--100分--5组测试数据 高级题--160分--8组测试数据 注:初级题和中级题为必答题,高级题为附加题. 提交次数:每题最多5次 评判方式:按通过测试数据组数给分,每通过一组得20分 2.考试说明 这里有一个老版的机试考试说明,供大家参考: C/C++,JAVA机试流程

2014年6月6日--华为机试

准备了还有一段时间了,结果还是悲剧了,主要准备的是算法,结果华为机试更看重字符串的操作,这一块正好是自己的弱项,哎.不过还有时间,这几个月多刷刷题,多锻炼锻炼,加油吧. 机试一共考了三道题,两道简单点的,一道难题,难题考得是状态机,不知道是什么东西╮(╯▽╰)╭,简单的两题做的也不好,回来在重新做一下.   1.倒置英文句子中单词的字母顺序. hello, I am good.  ->  olleh, I ma doog. 这题其实不难,当时脑子有点纠结符号,所以没做出来,还有一点客观原因,平时

进制进制进制~转换

从刚学计算机器就对进制转换有着莫名的反感,2进制 8进制 10进制 16进制各种转换. 下面就说下逻辑地址转换成物理地址的求法吧 首先,用户输入一个16进制的数字cin>>hex>>logic_add;   hex的意思是告诉计算机输入的数是以16进制方式输入的 这个时候你要是输出cout<<logic_add;  你会发现输出的是把这个16进制的数转换为10进制以后输出的结果 cout<<hext<<logic_add;这样输出的才是16进制.

华为机试正式版(西安c/c++/java),今天下午去机试的题目,新鲜出炉了!

以下题目都是回忆的,题目都很简单, 大家有些基础就可以参加!(语言可以是c/c++,也可以是java的) 题目一(60分): 字符串操作, 将小写转换成大写, 将大写转化为小写, 数字的不做转换 例如, 输入:aBcD12 输出:AbCd12 题目二(100分): 将输入的字符串按照规定重新排序,如果字符串长度为奇数, 则中间的字符保持不变, 中间字符左侧降序排列, 右侧字符按照升序排列, 如果字符串长度为偶数,则左半侧字符降序排列,右半侧字符则按照升序排列 例如, 输入:ab5de 输出:ba

[华为机试真题][2015]65.和尚挑水

题目 某寺庙里7个和尚:轮流挑水,为了和其他任务不能冲突,各人将有空天数列出如下表: 和尚1: 星期二,四; 和尚2: 星期一,六; 和尚3: 星期三,日; 和尚4: 星期五; 和尚5: 星期一,四,六; 和尚6: 星期二,五; 和尚7: 星期三,六,日; 请将所有合理的挑水时间安排表 思路 回朔法求解 回朔法即每进行一步,都试图在当前部分解的基础上扩大该部分解.扩大时,首先检查扩大后是否违反了约束条件,若不违反,则扩大之,然后继续在此基础上按照类似的方法进行,直至成为完整解:若违反,则放弃该步

进制转换—C++

无聊的历史课编写了一个进制转换的软件,软件比较单一,只能进行十进制向二进制.八进制.十六进制的转换. 借助C4droid的便利性,直接生成了APK,安卓机通吃. /* * Copyright (c) 2014,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:demo.cpp * 完成时间:2014年12月16日 * 版本号:v1.0 */ #include <iostream> using namespace std; // 十进制数转换成二进制数字

2014华为机试西安地区B组试题

2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生