问题 A: 二哈学A+B
来源:互联网 发布:唐嫣丑 知乎 编辑:程序博客网 时间:2024/05/16 07:54
问题 A: 二哈学A+B
时间限制: 1 Sec 内存限制: 128 MB提交: 69 解决: 26
[提交][状态][讨论版]
题目描述
二哈在ACM协会结识了一位外语学院的同学,她也喜欢编程,她想让二哈写了一个A+B的程序,两个小于100的正整数A和B,计算A+B,并且结果以二进制的形式输出。不过这个A+B有点特殊,A和B的每一位数字由对应的英文单词给出
输入
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出
输出
对每个测试用例输出1行,即A+B的值,结果以二进制输出。
样例
输入
one + two =three four + five six =zero seven + eight nine =zero + zero =
样例输出
1110110101100000
解析:对于这个题就是一个简单进行计算的题,用字母进行转换成数字,然后在计算他们的和,之后进行转换
二进制就行了。这个简单在他的数值的范围太小,要是进行大数的运算,就难
#include<stdio.h>#include<string.h>char a[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};int main(){ while(1){ char b[20]; int c[10]={10}; int cc[10]={10}; int k=0,flag=0; int z=0; while(scanf("%s",b)){ for(int i=0;i<10;i++){ if(strcmp(a[i],b)==0) if(flag==0) c[k++]=i; else cc[z++]=i; } if(strcmp(b,"+")==0) flag=1; if(strcmp(b,"=")==0) break; } int sum1; int sum2; if(k==2) sum1=c[0]*10+c[1]; else sum1=c[0]; if(z==2) sum2=cc[0]*10+cc[1]; else sum2=cc[0]; if(sum1==0&&sum2==0) return 0; int sum=sum1+sum2; int ans[20],num=0; do{ ans[num++]=sum%2; sum=sum/2; }while(sum!=0); for(int i=num-1;i>-1;i--) printf("%d",ans[i]); printf("\n"); } }
阅读全文
0 0
- 问题 A: 二哈学A+B
- A+B(字符串a+b问题)
- A+B(尾数不等a+b问题)
- 关于a+++++b问题
- A+B的问题
- A+B问题
- A+B问题acm
- 空行问题A+B
- A+B问题II
- 1.A+B问题
- A+B问题 844
- 有关A+B问题
- A+B问题
- A+B问题
- A-B问题
- ACM-A+B问题
- 1000 A+B问题
- a+b问题.1
- 实验一 集合的定义与运算
- 写一个不能被继承的类
- git pull 出现错误
- Linux下Redis的安装和部署
- dubbo 使用学习八(异步调用
- 问题 A: 二哈学A+B
- oracle中的事务
- 秋招第一次面试
- canal问题排查
- string-to-integer-atoi
- mongodb学习(二):centos下mongodb增删改查命令
- iOS 解决tableView和点击手势冲突问题
- 类的构造函数与其重载
- 云铝项目市场调查分析