题目:

描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。

输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例1

输入:

0xA
0xAA

复制输出:

10
170

结果:

方法一:(直接直接用输入输出格式化处理)

方法二:(按照题目要求用字符串处理)

解题思路:

方法一:(直接直接用输入输出格式化处理)

这个方法有点投机取巧。

既然是十六进制转换十进制。

那么scanf格式化输入的时候按照十六进制获取。

然后在printf格式化输出的时候按照十进制输出即可。

emm。。就是投机取巧,并不是按照题目处理字符串

方法二:(按照题目要求用字符串处理)

1,首先获取1个字符串。

2,从末尾开始获取数值。(注意循环获取的时候,前两个字符是0x所以不需要计算)

3,将每一个字母分为大写的A~F和小写a~f,以及0~9。从而先将当前位数的转换为十进制。

4,通过当前获取的位是字符串的 len - i位,计算出是十六进制的第len - i位。从而乘以16的len-i次方。

5,将获取的每个位的十进制相加。

代码:

方法一:(直接直接用输入输出格式化处理)

#include <stdio.h>int main() {int hex, dec;while(scanf("%x", &hex) != EOF) {printf("%d\n", hex);}return 0;
}

方法二:(按照题目要求用字符串处理)

#include <stdio.h>
#include <string.h>int main() {char hex[1024] = {};while(scanf("%s", hex) != EOF) {int len = strlen(hex);int dec = 0;//循环读取每一位for(int i = len; i > 2; i--) {char chr = hex[i-1];int temp = 0;//将每一位转换为十进制(只需区分a~z或者A~Z或者0~9即可if(chr >= 'a') {temp = chr - 'a' + 10;}else if(chr < 'A') {temp = chr - '0';}else {temp = chr - 'A' + 10;}//通过循环对当前位获得16的次方for(int j = len - i; j > 0; j--) {temp = temp * 16;}dec += temp;}printf("%d\n", dec);memset(hex, '\n', 1024);}return 0;
}

C练题笔记之:牛客-HJ005. 进制转换相关推荐

  1. 《刷题笔记》牛客网 字符集合(一刷)

    <刷题笔记>牛客网 字符集合(一刷) 文章目录 <刷题笔记>牛客网 字符集合(一刷) 1.题目分析: 2. 思路分析 3. 代码: 总结 1.题目分析: 本题有多组输入,题目的 ...

  2. 数据结构学习笔记:利用栈实现进制转换

    数据结构学习笔记:利用栈实现进制转换 一.除基倒取余法示意图 二.编写十进制转换成二进制Python程序 1.源代码 2.运行结果 其实Python提供了一

  3. 牛客网刷题笔记-SQL66 牛客每个人最近的登录日期(一)

    SQL66 牛客每个人最近的登录日期(一) 牛客每天有很多人登录,请你统计一下牛客每个用户最近登录是哪一天. 有一个登录(login)记录表,简况如下: 第1行表示user_id为2的用户在2020- ...

  4. 【Java刷题笔记】牛客网Java入门 1~4

    1~4 类型转换 描述 输入描述: 输出描述: 示例1 示例2 内心想法: 代码实现: 收获: 简单运算 描述 输入描述: 输出描述: 示例1 内心想法: 代码实现: 收获: 四舍五入 描述 输入描述 ...

  5. 牛客网NC112--进制转换

    描述 给定一个十进制数 M ,以及需要转换的进制数 N .将十进制数 M 转化为 N 进制数. 当 N 大于 10 以后, 应在结果中使用大写字母表示大于 10 的一位,如 'A' 表示此位为 10 ...

  6. javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换

    @[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...

  7. 笔记②:牛客校招冲刺集训营---C++工程师(面向对象(友元、运算符重载、继承、多态) -- 内存管理 -- 名称空间、模板(类模板/函数模板) -- STL)

    0618 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-14 友元 友 ...

  8. 笔记③:牛客校招冲刺集训营---C++工程师(5.9 C++新特性)

    0625 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-38 5.6 ...

  9. 超适合初学者刷的170道C基础编程题 选自牛客网 个人超详细解析(有彩蛋哟~)

    在最开始先简单说下为什么刷题,可能大家在刚开始学的时候认识不到动手或者认识到但并不知道刷题的重要性.简单来说即十分巩固当前知识,让学到脑子里的知识学以致用.其次一点就是在最开始不再担心写代码的恐惧,认 ...

最新文章

  1. spark- PySparkSQL之PySpark解析Json集合数据
  2. OnLineML一:关于Jubatus 的简介...
  3. 链接不到服务器_新手搭建云服务器详细过程
  4. centos oracle sqlplus,centos 下oracle sqlplus乱码问题解决
  5. node开发命令行脚本
  6. 对第三组博客的检查情况
  7. yum更新php版本,yum安装的php升级到7.0版本
  8. 全球IP地址分配对应表
  9. chm打不开怎么办?
  10. 【路由篇】01. 电脑远程访问小米路由器硬盘文件
  11. linux免密码互信,Linux建立SSH免密码互信方法
  12. 蜀门Online 简单打怪脚本(vbs)
  13. iio Engine 1
  14. jquery实现app开发闹钟功能_jQuery Mobile 实现苹果滑动删除闹钟功能的几点总结
  15. 计算机32位如何变成64位,我电脑是32位的
  16. 大使、布道师、贡献者,OpenHarmony社区发起三大贡献者激励计划
  17. Encrypt 和 Decrypt 加密--解密
  18. torch.nn.MaxPool1d各参数分析
  19. 淘宝京东618列车叠蛋糕自动逛店铺脚本
  20. 百度快照更新是什么意思?

热门文章

  1. uniapp简单的身份证照片(正反面)上传
  2. Flowable实战(二):表结构以及变量表单介绍
  3. 盛大借助Bambook程序达人赛推开放平台
  4. 重庆邮电大学计算机学硕考研经验,重庆邮电大学2008年计算机考研复试全过程...
  5. 期末大作业纯前端技术实现个人简历模板
  6. mysql教程源码_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  7. fcntl的详细使用
  8. struts2实现不刷新页面执行action
  9. VMware虚拟机安装Windows2008详细过程
  10. 大型交易系统之高并发