PS:一开始我画蛇添足的用字符串来做....超麻烦...贴个我做的..

代码:

#include "stdio.h"
#include "string.h"
#include "math.h"
long long cal(char a[]);
long long back(long long a,char b[],long long &flag);
char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main(){
char a[110],b[110],sum[110];
long long sum1,i,s,flag;
while(~scanf("%s%s",&a,&b)){
sum1=cal(a)+cal(b); //两个十六进制数转换成十进制数相加
s=back(sum1,sum,flag); //flag是用来判断正负
if(flag==0){
for(i=s;i>=0;i--){
printf("%c",sum[i]);
}
puts("");
}
else{
printf("-");
for(i=s;i>0;i--){
printf("%c",sum[i]);
}
puts(""); }
}
return 0;
}
long long back(long long a,char b[],long long &flag){ //从十进制数变到十六进制数
long long i=0,k,t;
flag=0;
if(a>=0){
t=a;
while(t/16!=0){
k=t%16;
b[i++]=c[k];
t=t/16;
}
k=t%16;
b[i]=c[k];
}
else{
flag=1;
t=-a;
b[i++]='-';
while(t/16!=0){
k=t%16;
b[i++]=c[k];
t=t/16;
}
k=t%16;
b[i]=c[k];
}
return i;
}
long long cal(char a[]){ //从十六进制数变成十进制数
long long i,s,j,sum=0;
if(a[0]=='-'){
s=strlen(a);
for(i=1;i<s;i++){
for(j=0;j<16;j++){
if(a[i]==c[j]){
sum+=j*pow(16,s-i-1);
break;
}
}
}
sum=-sum;
}
else if(a[0]=='+'){
s=strlen(a);
for(i=1;i<s;i++){
for(j=0;j<16;j++){
if(a[i]==c[j]){
sum+=j*pow(16,s-i-1);
break;
}
}
}
}
else{
s=strlen(a);
for(i=0;i<=s-1;i++){
for(j=0;j<16;j++){
if(a[i]==c[j]){
sum+=j*pow(16,s-i-1);
break;
}
}
}
}
return sum;
}

PS:后来才知道可以用%X输入十六进制的整数...所以AC代码为下列

代码:

#include "stdio.h"
int main(){
long long a,b,c;
while(~scanf("%llX%llX",&a,&b)){
c=a+b;
if(c<0) {printf("-"); c=-c;}
printf("%llX\n",c);
}
return 0; }

hdu 2057的更多相关文章

  1. hdu 2057 A+B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...

  2. hdu 2057 A+B Again

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 题目分析:涉及到16进制内的加法,可以用%I64x直接来处理,要注意到16进制中负数是用补码来表 ...

  3. HDU 2057 十六进制加减法

    http://acm.hdu.edu.cn/showproblem.php?pid=2057   水题,%I64X 长整形十六进制输入输出     #include<stdio.h> in ...

  4. 题解报告:hdu 2057 A + B Again

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 问题描述 我们的HDOJ必须有许多A + B问题,现在又有新的问题出现. 给你两个十六进制整数, ...

  5. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  6. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

  7. HDU ACM 题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...

  8. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  9. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

随机推荐

  1. 制作Aspose CHM文档的过程记录

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  2. 封装jquery时用到的东西

    顺序都是瞎拍的,就是明显分割用 1.将函数封装成$(' ')这种形式 把函数名起成$ $(各种选择器) $(selector) 2.有时候jquery可以继续加点,返回自己本身的元素 创建个构造函数, ...

  3. jQuery图片延迟加载插件jQuery.lazyload使用方法(转)

    使用方法 1.引用jquery和jquery.lazyload.js到你的页面 <script src="jquery-1.11.0.min.js"></scri ...

  4. jsp 文件引入

    <!-- 清除浏览器中的缓存,它和其它几句合起来用,就可以使你再次进入曾经访问过的页面时,ie浏览器必须从服务端下载最新的内容,达到刷新的效果. --><meta http-equi ...

  5. Hibernate映射之实体映射

    1.使用@注解配置实体类 实体类一般有ID.普通属性.集合属性等,分别对应数据库的主键.普通列.外键.@注解配置中,实体类用@Entity注解,用@Table指定对应的数据表,用@Id配置主键,用@C ...

  6. iOS 推送全解析

    本文旨在对 iOS 推送(以下简称 推送)进行一个完整的剖析,如果你之前对推送一无所知,那么在你认真地阅读了全文后必将变成一个推送老手,你将会对其中的各种细节和原理有充分的理解.以下是 pikacod ...

  7. chrome 模拟点击

    实现进入一个页面后触发一个<a>的点击事件. 由于safari和chrome不支持<a>的click()所以需要对浏览器进行判断 var Sys = {};   var ua ...

  8. struts2视频学习笔记 29-30(Struts 2常用标签,防止表单重复提交)

    课时28 Struts 2常用标签解说 property标签 property标签用于输出指定值: <s:set name="name" value="'kk'&q ...

  9. HTTP脚本化——XMLHttpRequest对象的学习笔记

    一. HTTP 请求和响应 一个HTTP请求由4部分组成 HTTP请求方法(也叫动作Verb) 正在请求的URL 一个可选的请求头集合(可能包含身份验证信息等) 一个可选的请求主体 服务器返回的HTT ...

  10. js——常见的小方法

    1.随机得到是六位数,可以当做“密码”来使用: Math.random().toString().substr(2, 6):