我们的HDOJ一定有不少A+B问题,现在有个新的来了。给你两个十六进制(hexadecimal)整数,把他们加起来然后也用十六进制输出吧。简单吗?A了它!

输入

多组输入数据,处理到文件尾。 每组包括A和B两个十六进制数,隔一个空格(seperated by a blank)。 A和B的长度小于15。

输出

每组在一行中输出A和B的十六进制和。

WA代码待对拍:

#include<iostream>
using namespace std;
long long mi(int x, int n)//幂函数
{long long res = 1;for (int i = 1; i <= n; i++)res *= x;return res;
}
long long hextodec(char* hex)//十六转十函数
{int length = 0;for (int i = 0; hex[i] != '\0'; i++)length++;//统计字符串长度(即十六进制数的位数加上负号)long long res = 0;int minus = 0;if (*hex == '-'){minus = 1;hex++;length--;}else if (*hex == '+'){hex++;length--;}for (int i = length - 1; i >= 0; i--)//i等于几,就加16的几次方{switch (*(hex + length - 1 - i)){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:res += (*(hex + length - 1 - i) - 48) * mi(16, i);//0~9的ASCII码为48到57break;case 65:case 66:case 67:case 68:case 69:case 70:res += (*(hex + length - 1 - i) - 55) * mi(16, i);//A~F的ASCII码为65到70break;default:break;}}if (minus == 1)return -res;elsereturn res;
}
char* dectohex(long long n)//十转十六函数
{if (n == 0){char hex[2] = "0";return hex;}int length;int minus = 0;//记录是不是负数if (n < 0)//如果n是负数,则暂时转正{minus = 1;n = -n;}for (int i = 15; i >= 0; i--){if (n >= mi(16, i)){length = i + 1;//计算n转成十六之后有多少位数break;}}char hex[18];for (int i = length - 1 + minus; i >= 0; i--)//如果是负数,则第一位数的字符数组下标+1{switch (n % 16){case 10:hex[i] = 'A'; break;case 11:hex[i] = 'B'; break;case 12:hex[i] = 'C'; break;case 13:hex[i] = 'D'; break;case 14:hex[i] = 'E'; break;case 15:hex[i] = 'F'; break;case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:{hex[i] = n % 16 + 48;break;}default:break;}n = n / 16;}hex[length + minus] = '\0';if (minus == 1)hex[0] = '-';return hex;
}
int main()
{char a[17] = "\0";char b[17] = "\0";while(cin >> a >> b){for (int j = 0; dectohex(hextodec(a) + hextodec(b))[j] != '\0'; j++)cout << dectohex(hextodec(a) + hextodec(b))[j];cout << endl;}return 0;
}

转载于:https://my.oschina.net/u/4035395/blog/3011207

(wa待对拍)HDU - 2057 十六进制加法 难度:C++入门 复杂度:有点复杂 翻译难度:简单...相关推荐

  1. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  2. 照片拍歪了怎么办#ps教程小白入门基础抠图技巧学习

    拍歪了怎么办#ps教程小白入门基础抠图技巧学习

  3. c++十六进制加法_C++中输出十六进制形式的字符串

    前言 在进行 i18n 相关的开发时,经常遇到字符编码转换的错误.这时如果能把相关字符串用十六进制的形式打印出来,例如,"abc" 输出成 "\\x61\\x62\\x6 ...

  4. c++十六进制加法_C/C++知识点之怎样理解八进制和十六进制

    本文主要向大家介绍了C/C++知识点之怎样理解八进制和十六进制,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助. C语言中8进制和16进制怎么表示 C语言本身支持的三种输入是: 1. ...

  5. 基于VHDL的层次化设计:异步清零和同步使能4位十六进制加法计数器和七段显示译码器的元件例化实现

    原文:http://blog.csdn.net/Dr_JIA/article/details/45790579 方案一 (本实现方案只编写了一个vhdl文件,计数器和译码器的vhdl描述写在了一个文件 ...

  6. EOJ 3037:十六进制加法(高精度+数组位运算)

    一.思路: 1.字符数组读入,整形数组存储,字符数组输出 2.类似于十进制大数加法,用整型数组模拟运算:总使得长度长的字符串作为s1,这涉及到字符数组交换 3.每次结束时清空整型数组 二.注意点: 1 ...

  7. c++十六进制加法_详解C++中十六进制字符串转数字(数值)

    详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用: 方法1: sscanf() 函数名: sscanf 功  能: 从字符串格式化输入 用  法: int sscan ...

  8. c++十六进制加法_c++ 二进制数、十进制、十六进制转化的函数

    1.将十六进制字符串转化为十进制整数 WORD DEC( CString str ) { WORD decvalue=0; int i=0; for( i=0 ; i&ltstr.GetLen ...

  9. C++ 实现二十六进制加法

    题目: 实现26进制的加法 其中, 'a'代表0,z代表25,依次类推 输入为 'a'~'z'26个小写字母的组合, 输出也为 'a'~'z'的组合 思路:先将输入字符串转换为10进制数,进行加法之后 ...

  10. ※以一片74163(同步十六进制加法计数器)为核心部件设计可变进制(两种进制选择)计数器

    题: 设计一个可控进制的计数器, 当输入控制变量M=0时工作在5进制; M=1时工作在15进制. 分析: 根据之前博客中的分析, 我们可以通过两种方法来进行设计. 设计方案1: 我们可以通过设计741 ...

最新文章

  1. linux 硬链接 软链接 简介
  2. 超级计算机的缺点,超级计算机也无法算完圆周率,反而会死机?说出来你一定不会相信...
  3. c语言三个数从小到大排序/输出_C语言经典100题(6)
  4. 微软最强命令行工具 Windows Terminal,强势霸榜GitHub
  5. 《零基础看得懂的C语言入门教程 》——(十)C语言的指针原来是这样
  6. 大数据如何促进经济增长?中国优势及应对 | 互联网经济学
  7. 每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
  8. 读博天赋更重要还是努力更重要?
  9. 一名Java开发人员装机必备软件
  10. 自定义tensorflow的tf.image.resize_bicubic方法
  11. 郑职院官计算机网络,2020年陕西省青年职业技能大赛计算机网络管理员决赛开幕式在汉中职院举行...
  12. SQL Sever创库
  13. TeamViewer使用心得
  14. slides.jquery.js快速实现轮播图效果
  15. python-实现多元回归及预测
  16. 字符串加密与解密_一种可以用在程序加密的功能
  17. 编程算法基础-常数变易法
  18. Too many open files 问题排查和解决
  19. Linux Hook技术实践
  20. 【数据库系统概论】——学习目录

热门文章

  1. USB、UART、SPI PCI/PCIE等总线速率
  2. 基因组测序分析linux,基因组数据的重测序分析
  3. 天空之镜?瑞士冰川?Nono,这里其实是新疆!
  4. elementui日历组件实现可标记日历
  5. 疯狂填词 mad_libs 第9章9.9.2
  6. 2018-2019-2 20175217 实验四《Android开发基础》实验报告
  7. jave获取视频时长
  8. 解析DeDecms系统的SEO内部优化技巧
  9. AutoIt 快速入门指南
  10. win11如何打开热点?