poj 2845 字符串(二进制数相加)
来源:互联网 发布:黑马程序员零基础教程 编辑:程序博客网 时间:2024/06/09 19:59
题意:给定两个二进制数,把他们相加。题目不难,但是还是要仔细。
思路:字符串模拟。注意两组数据即可:
1、00000+000000=0
2、000001+00001=10
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define clr(s,t) memset(s,t,sizeof(s));#define N 1005int T,c,n;char s[100],t[100];void reverse(char *x){ int i,j,len = strlen(x); for(i = 0,j = len-1;i<j;i++,j--){ char ch = x[i]; x[i] = x[j]; x[j] = ch; }}int main(){ scanf("%d",&T); for(c = 1;c<=T;c++){ int i,j,lens,lent; memset(t, '0', sizeof(s)); scanf("%s %s",s,t); lens = (int)strlen(s); lent = (int)strlen(t); reverse(s); reverse(t); s[lens] = t[lent] = '0'; for(i = 0;i<lens;i++) if(s[i] == '1') t[i]++; j = 0; lent = max(lens,lent); for(i = 0;i<=lent;i++){ if(j) t[i]++; if(t[i] >= '2'){ j = 1; t[i] -= 2; }else j = 0; } j = lent; while(j && t[j] == '0') j--; printf("%d ",c); for(;j>=0;j--) putchar(t[j]); printf("\n"); } return 0;}
0 0
- poj 2845 字符串(二进制数相加)
- 二进制数相加或两个数相加(C++)
- 实现二进制数相加
- leetcode_67. Add Binary 字符串形式的二进制数相加
- Add Binary(二进制字符串相加)
- 二进制字符串相加
- leetcode 之 二进制数相加
- 算法Day5-二进制数相加
- Add Binary 二进制数相加
- LeetCode之二进制字符串相加
- poj 2602 大数相加(字符串输出)
- 大数相加(二进制)
- 两个二进制数相加后得到新的二进制数
- 两个n位二进制数相加
- leetCode 之 两个二进制数相加
- LeetCode-67 Add Binary(二进制数相加)
- Add Binary 将二进制数相加
- Add Binary 两个二进制字符串相加
- pAdTy_-8 支持不同的设备
- 开发项目中如何预估时间
- poj2255
- RPC机制与hdfs下载源码剖析
- Android中如何使用命令行查看内嵌数据库SQLite3
- poj 2845 字符串(二进制数相加)
- ubuntu14.04 学习总结
- Puzzle Moppet:用Irrlicht Engine做的小游戏
- C语言编写的文本文件/二进制文件格式互换
- 网络安全的教材
- 半年-足以改变一个人
- 硬件开发流程
- Hadoop Notes
- 自动释放池的使用