J:计算 A + B

考察点 : 高精度,字符串
坑点 : 字符串中可能全是数字,或者 + 超过 1 个,需要进行特殊判断

析题得侃:

关于高精度的各种板子

Code:

#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; string str; int T,n; int main(void) {
vector<int> add(vector<int> &A,vector<int> &B);
scanf("%d",&T);
while(T --) {
vector<int>a,b;
cin >> str;
int len = str.length();
int ans = 0;
for(int i = 0; i < len; i ++) {
if(str[i] == '+') {
ans ++;
}
}
if(str[0] == '+' || str[len - 1] == '+' || ans != 1) {
cout << "skipped" << endl;
} else {
bool flag = false;
for(int i = 0; i < len; i ++) {
if(str[i] == '+') {
flag = true;
continue;
}
if(flag == false) a.push_back(str[i] - '0');
else b.push_back(str[i] - '0');
}
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
vector<int>temp;
temp = add(a,b);
for(int i = temp.size() - 1; i >= 0 ; i --) {
cout << temp[i];
}
cout << endl;
}
}
return 0;
} vector<int> add(vector<int> &A,vector<int> &B) {
if(A.size() < B.size()) return add(B,A); // 尽量用长的 + 短的,因为这样多余的部分我们就可以直接进行处理了
vector<int> C; // 设置一个 vector 类型的变量,用来作为返回的值
int t = 0;
for(int i = 0; i < A.size(); i ++) {
t += A[i];
if(B.size() > i) t += B[i]; // B 有一定的限制,不能一直加 呀
C.push_back(t % 10);
t /= 10; // 进位
}
if(t) C.push_back(t); // 可能会多出来一个,例如3位数 + 3 位数 ,结果有可能是 4 位数
return C; }

最新文章

  1. Write thread-safe servlets [reproduced]
  2. 简单CSS3实现炫酷读者墙
  3. google浏览器打开报出文件不可读解决方案
  4. Xmodem Bootloader
  5. redis 与 spring整合 hash 增删改操作 list增删改操作
  6. 跨集群 distcp命令
  7. poj 1363
  8. Java类路径
  9. ASP.NET MVC5 高级编程 第3章 视图
  10. jsp的useBean标签使用
  11. SharePoint2010 Form验证配置流程
  12. css新属性box-sizing应用
  13. Java的类C结构体的实现,以及对类的某一属性进行排序
  14. antlr v4 使用指南连载4——词法规则入门之黄金定律
  15. RabbitMQ通过Exchange.headers属性代替routekey,x-match实现队列精准匹配
  16. SQLServer之创建唯一聚集索引
  17. HDU 3371 Connect the Cities(prim算法)
  18. TensorFlow学习笔记(8)--网络模型的保存和读取【转】
  19. 《Entity Framework 6 Recipes》中文翻译 ---- 系列教程
  20. Blocks与Dispatch Queue的使用

热门文章

  1. springboot 基于Tomcate的自启动流程
  2. linux的目录结构知识
  3. Windows渗透备忘录
  4. 关于ETH/BTC区块的监控
  5. K8S ConfigMap使用
  6. 高性能异步SRAM技术角度
  7. 【POJ - 2533】Longest Ordered Subsequence (最长上升子序列 简单dp)
  8. 原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误(修改内容有三处
  9. Python——面向对象,简易学生信息管理系统
  10. C#中 ref 关键字的认识和理解