http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1411

1411: 喜闻乐见的a+b

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 385  Solved: 143
[Submit][Status][Web Board]

Description

喜闻乐见的a+b来了,当然二进制,八进制,十进制什么的估计你们也懒得写了,来个20进制的a+b

Input

给出多组a和b,每个数字一行

数字由0~9和小写字母a~j(10~19)

给出的长度不超过100

Output

每组数据输出a+b的和。

Sample Input

1234567890 abcdefghij 99999jjjjj 9999900001

Sample Output

bdfi02467j iiiij00000

HINT

Source

解题思路:

就是10进制高精度加法的再次升级版吧。还是老套路,先反转,然后相加,相加的时候因为是二十进制,所以对一些字母和数字要做判断,最后进位不要忘了,居然因为这个WA了好几次,一点也开心不起来。

代码:

#include<bits/stdc++.h>
using namespace std;
int t(char a)
{return a-'a'+10;
}
char t2(int x)
{return x-10+'a';
}
int main()
{char s1[105],s2[105],a[105],b[105],ans[105];while(~scanf("%s%s",s1,s2)){memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(ans,0,sizeof(ans));int i;int l1=strlen(s1),l2=strlen(s2);for(i=l1-1;i>=0;i--)a[l1-i-1]=s1[i];for(i=l2-1;i>=0;i--)b[l2-i-1]=s2[i];int c=0,x1,x2,y,sum=0;for(i=0;i<l1 || i<l2;i++){if(isalpha(a[i]))x1=t(a[i]);else if(a[i]==0)x1=0;else x1=a[i]-'0';if(isalpha(b[i]))x2=t(b[i]);else if(b[i]==0)x2=0;else x2=b[i]-'0';//printf("x1=%d  x2=%d\n",x1,x2);y=(x1+x2)%20;sum=y+c+ans[i];//printf("sum=%d\n",sum);if(sum<10)ans[i]=sum+'0';else if(sum>=10 && sum<=19)ans[i]=t2(sum);else ans[i]=sum-20+'0';if(x1+x2+c>=20)c=1;else c=0;}if(c==1){ans[i]=c+'0'; }for(i=104;ans[i]==0;i--);for(;i>=0;i--)printf("%c",ans[i]);printf("\n");}return 0;
}

【ZCMU1411】喜闻乐见的a+b(20进制a+b)相关推荐

  1. 使用Quartus II9.0实现用74161计数器设计一个20进制的计数器

    用74161计数器芯片设计一个20进制的计数器 因为我们知道74161是16进制计数器,16<20,所以我们要用2个74161计数器,可以将一个74161变为二进制,一个74161变为10进制从 ...

  2. 12进制和20进制计数器

    既然选择了远方 就只顾风雨兼程 <盗用的> 12进制计数器原理图 经过前面的各种摸爬滚打 这个简直不再话下<小装一下> 12进制计数器仿真图 下面就是20进制计数器的了 20进 ...

  3. 用74161实现12进制与20进制

    今天天气很不好,想起了我家那里,高三下午自习,有次外面突然开始刮气起大风,然后我就看着天空一点一点变黄,满天的沙尘,我们那里叫沙城可能就是由此而来的 吧,不过现在治理的沙尘暴已经近乎绝迹了,欢迎大家到 ...

  4. 1411: 喜闻乐见的a+b(20进制)

    分析: 本题要求进行100位以内的二十进制数字相加运算.加数和被加数的长度不一定相等.超长数字的相加,我们用字符串来处理. 先将两个字符串反转,再从第0位开始到末尾,两位依次相加,如果两位相加的结果超 ...

  5. ZCMU-1411 喜闻乐见的a+b

    Description 喜闻乐见的a+b来了,当然二进制,八进制,十进制什么的估计你们也懒得写了,来个20进制的a+b Input 给出多组a和b,每个数字一行 数字由0~9和小写字母a~j(10~1 ...

  6. 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换

    为什么要使用进制数 数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010- 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 ...

  7. 十进制、八进制和十六进制,各种进制存在的意义,为什么要设计出来?

    目录 一.表示方法 1.八 进制 定义: 编程中如何表达: 2.十六 进制 定义: 编程中如何表达: 二.各种进制存在的意义: 1.二进制的意义: 优势: 缺陷: 2.十进制的意义: 缺陷 - 容易出 ...

  8. 产生任意进制乘法表的程序代码

    现在的小学生从二年级上学期开始学习九九乘法口诀表,不知道大家想过这个问题没有,就是为什么乘法口诀表是十进制的呢?当然是因为我们从小学习算术是从十进制记数开始的,但是为什么人们选择了十进制来记数呢? 实 ...

  9. 进制操作,数据底层计算机基础

    位运算(&.|.^.~.>>.<<) 1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中.即0.1两种状态,计算机对二进制数据进行的运算 (+.-.*./ ...

最新文章

  1. Python isinstance() 函数
  2. PyTorch 神经网络
  3. 成功解决​​​​​​​安装pywin32时出现python version 3.6 required, which was not found in the registry
  4. 用Python3Request爬取英雄联盟皮肤、单线程爬取
  5. android 拦截webview资源请求,Android Webview拦截ajax请求
  6. 跨越跨域大山,前端不得不知道的Ajax
  7. C#心得与经验(二)
  8. Nginx下配置小绿锁https
  9. java win10 通知_如何在Java中创建Windows通知
  10. 读书笔记_打开量化投资的黑箱06
  11. leetcode python3 简单题28. Implement strStr()
  12. iPhone手机屏幕尺寸
  13. 用python+turtle画太阳花
  14. 新型智慧城市投融资经验分享
  15. python实现CAPM模型
  16. element-ui message 显示重叠问题
  17. 魅族 -- 禁止D及以下级别LOG的输出
  18. 定向士官计算机网络技术在部队干什么,定向士官、直招士官、义务兵入伍详细对比分析!一文看懂区别!...
  19. 浅析“关于区块链解决资本主义问题还是社会主义问题”的对与错
  20. 未来可期的6个物联网发展

热门文章

  1. 平安喜乐 | Python制作圣诞树和词云
  2. java强行访问别人qq空间_疯人院:如何使用javascript来获取QQ空间最近访客好友。...
  3. 大数据剖析:思科、IBM、甲骨文、Uber相继裁员,寒冬将至 ?
  4. 自由市场经济、社会主义和大数据
  5. 2022国赛正式题nfs 解题
  6. 经度纬度 正则表达式
  7. 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客
  8. Linux多定时器的实现之一
  9. Linux多定时器实现之二
  10. 【计算机网络】思科实验(8):网络地址转换之路由器动态NAT模拟