SPOJ42 - Adding Reversed Numbers (简单题)
2015-10-11 20:17
423 查看
题目链接
就是给两个数,翻转后加和,然后再翻转后输出
用字符串加,不用翻转(从头开始加就是反的),直接加然后除掉前面的 0 输出就行
思路
题意真的很容易理解错呀……就是给两个数,翻转后加和,然后再翻转后输出
用字符串加,不用翻转(从头开始加就是反的),直接加然后除掉前面的 0 输出就行
代码
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; char ans[20]; char num[20]; void add() { int tmp=0, i=0; for(i=0; ans[i]&&num[i]; i++) { tmp = ans[i] + num[i] - 2*'0' + tmp; ans[i] = tmp%10 + '0'; tmp /= 10; } if(ans[i]) { for(; ans[i]; i++) { tmp = ans[i] - '0' + tmp; ans[i] = tmp%10 + '0'; tmp /= 10; } } else { for(; num[i]; i++) { tmp = num[i] - '0' + tmp; ans[i] = tmp%10 + '0'; tmp /= 10; } } if(tmp) ans[i] = tmp + '0'; } void print(char *str) { int i=0; for(; str[i]=='0'; i++); for(; i<str[i]; i++) printf("%c", str[i]); printf("\n"); } int main() { int n; scanf("%d", &n); while(n--) { memset(ans, 0, sizeof(ans)); memset(num, 0, sizeof(num)); scanf("%s%s", ans, num); add(); print(ans); } return 0; }
相关文章推荐
- 1.微信密码盒子之密文
- 【WEB API项目实战干货系列】- 导航篇(十足干货分享)
- 相关ubuntu有几个细节有用的工具系列
- ubuntu下安装jdk
- Using abstractions and interfaces with Unity3D
- SPOJ1 - Life, the Universe, and Everything (水题)
- 如果使用swift,先不用pod
- 监控报警平台设计思路
- 甲骨文数据库学习内容
- Android拍照后Bitmap内存溢出的解决办法
- 业界良心机构解密:90后更适合学网络营销的六大理由!
- 配置opencv2.411调试版本(debug)
- 理解Bitcode:一种中间代码
- REQUEST的TRACE文件
- Java核心技术第5章(5)
- 第7周项目4-队列数组
- 无处不在的线性分解
- delphi精要之(二)
- C++修改已输出的字符
- expect基础语法