【ZCMU1411】喜闻乐见的a+b(20进制a+b)
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)相关推荐
- 使用Quartus II9.0实现用74161计数器设计一个20进制的计数器
用74161计数器芯片设计一个20进制的计数器 因为我们知道74161是16进制计数器,16<20,所以我们要用2个74161计数器,可以将一个74161变为二进制,一个74161变为10进制从 ...
- 12进制和20进制计数器
既然选择了远方 就只顾风雨兼程 <盗用的> 12进制计数器原理图 经过前面的各种摸爬滚打 这个简直不再话下<小装一下> 12进制计数器仿真图 下面就是20进制计数器的了 20进 ...
- 用74161实现12进制与20进制
今天天气很不好,想起了我家那里,高三下午自习,有次外面突然开始刮气起大风,然后我就看着天空一点一点变黄,满天的沙尘,我们那里叫沙城可能就是由此而来的 吧,不过现在治理的沙尘暴已经近乎绝迹了,欢迎大家到 ...
- 1411: 喜闻乐见的a+b(20进制)
分析: 本题要求进行100位以内的二十进制数字相加运算.加数和被加数的长度不一定相等.超长数字的相加,我们用字符串来处理. 先将两个字符串反转,再从第0位开始到末尾,两位依次相加,如果两位相加的结果超 ...
- ZCMU-1411 喜闻乐见的a+b
Description 喜闻乐见的a+b来了,当然二进制,八进制,十进制什么的估计你们也懒得写了,来个20进制的a+b Input 给出多组a和b,每个数字一行 数字由0~9和小写字母a~j(10~1 ...
- 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换
为什么要使用进制数 数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010- 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 ...
- 十进制、八进制和十六进制,各种进制存在的意义,为什么要设计出来?
目录 一.表示方法 1.八 进制 定义: 编程中如何表达: 2.十六 进制 定义: 编程中如何表达: 二.各种进制存在的意义: 1.二进制的意义: 优势: 缺陷: 2.十进制的意义: 缺陷 - 容易出 ...
- 产生任意进制乘法表的程序代码
现在的小学生从二年级上学期开始学习九九乘法口诀表,不知道大家想过这个问题没有,就是为什么乘法口诀表是十进制的呢?当然是因为我们从小学习算术是从十进制记数开始的,但是为什么人们选择了十进制来记数呢? 实 ...
- 进制操作,数据底层计算机基础
位运算(&.|.^.~.>>.<<) 1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中.即0.1两种状态,计算机对二进制数据进行的运算 (+.-.*./ ...
最新文章
- Python isinstance() 函数
- PyTorch 神经网络
- 成功解决​​​​​​​安装pywin32时出现python version 3.6 required, which was not found in the registry
- 用Python3Request爬取英雄联盟皮肤、单线程爬取
- android 拦截webview资源请求,Android Webview拦截ajax请求
- 跨越跨域大山,前端不得不知道的Ajax
- C#心得与经验(二)
- Nginx下配置小绿锁https
- java win10 通知_如何在Java中创建Windows通知
- 读书笔记_打开量化投资的黑箱06
- leetcode python3 简单题28. Implement strStr()
- iPhone手机屏幕尺寸
- 用python+turtle画太阳花
- 新型智慧城市投融资经验分享
- python实现CAPM模型
- element-ui message 显示重叠问题
- 魅族 -- 禁止D及以下级别LOG的输出
- 定向士官计算机网络技术在部队干什么,定向士官、直招士官、义务兵入伍详细对比分析!一文看懂区别!...
- 浅析“关于区块链解决资本主义问题还是社会主义问题”的对与错
- 未来可期的6个物联网发展
热门文章
- 平安喜乐 | Python制作圣诞树和词云
- java强行访问别人qq空间_疯人院:如何使用javascript来获取QQ空间最近访客好友。...
- 大数据剖析:思科、IBM、甲骨文、Uber相继裁员,寒冬将至 ?
- 自由市场经济、社会主义和大数据
- 2022国赛正式题nfs 解题
- 经度纬度 正则表达式
- 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客
- Linux多定时器的实现之一
- Linux多定时器实现之二
- 【计算机网络】思科实验(8):网络地址转换之路由器动态NAT模拟