题目描述:
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

思路:

我们定义两个指针 i 和 j 分别指向 num 1 和num 2 的末尾,即最低位,同时定义一个变量add 维护当前是否有进位,然后从末尾到开头逐位相加即可。你可能会想两个数字位数不同怎么处理,这里我们统一在指针当前下标处于负数的时候返回 0,等价于对位数较短的数字进行了补零操作。

c++ 代码:

int(string num1, string num2) {int i = num1.size()-1,j = num2.size()-1;int add =0;string ans = "";while(i>=0||j>=0||add!=0){int x = i>=0?num1[i]-'0':0;int y = j>=0?num2[j]-'0':0;int result = x+y+add;ans.push_back('0'+result%10); add=result/ 10; //进位i--;j--;}reverse(ans.begin(),ans.end());return ans;}

c语言代码:

char* addStrings(char* num1, char* num2) {int i = strlen(num1) - 1, j = strlen(num2) - 1, add = 0;char* ans = (char*)malloc(sizeof(char) * (fmax(i, j) + 3));int len = 0;while (i >= 0 || j >= 0 || add != 0) {int x = i >= 0 ? num1[i] - '0' : 0;int y = j >= 0 ? num2[j] - '0' : 0;int result = x + y + add;ans[len++] = '0' + result % 10;add = result / 10;i--, j--;}int left = 0,right = len-1;while(left<right){char ch = ans[left];ans[left] = ans[right]ans[right] = ch;left++;right--; }ans[len++] = 0;//字符串末尾添加0return ans;
}

-fmax :math.h中的函数,使用时需要在.c文件中include<math.h>

作用是返回两个浮点参数中较大的一个

字符串相加/大数相加(代码极短)相关推荐

  1. 字符串经典题之大数相加

    题目 字符串相加 解答 相加时按照对应为相加即可,注意有的时候相加可能会导致进位,所以我们可以定义一个变量next,next取值为0表示不进位,next取值为1表示进位.拿出对应位的字符的时候,将他们 ...

  2. 带小数的大数相加,大数相减C++实现

    今天我们带来string类的含小数的大数相加.相减的实现过程,具体代码如下 #include<iostream> #include<string> #include<cc ...

  3. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例

    前言 JavaScript 中的最大安全整数是 2 ^{53} – 1 ,即 9007199254740991,当我们进行超出这个范围的数值计算的时候就无法得到精确的值,而是一个近似值,比如我们计算 ...

  4. 大数相乘、大数相加、大数相减Java版本

    为什么80%的码农都做不了架构师?>>>    题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...

  5. zcmu-1181(大数相加)

    1181: a+b(不同于第一题) Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 920  Solved: 303 [Submit][Status] ...

  6. 大数系列之大数相加(ACM通过)(一)

    大数相加 概述:本题主要解决HDU 1002的大数相加问题并且成功AC 主要思路 1:定义两个字符数组和两个int型数组,输入字符串数组 2:将两个字符数组的长度用'0'补到一样长 3:倒着存入int ...

  7. 大数相加(A+B)(超详细)!

    洛谷算法之大数相加 先看题目: 思路分析: 看a和b的取值范围是(0至10的500次方)在c语言中就算用unsigned long long int(0至2的64次方)也超出了范围,因此这道题不能简单 ...

  8. 四个大数相加 问题的分析(转 韩卫平的笔记 )

    转至于 http://student.csdn.net/space.php?uid=39102&do=blog&id=6381&t=1305520464 前几天看到一个同学在课 ...

  9. hdu A + B Problem II(大数相加,数组实现)

    hdu A + B Problem II(大数相加,数组实现) 题目走起 注意最后一个case 不需要换行 下面代码 #include<stdio.h> #include<strin ...

最新文章

  1. 捕获Camera并保存图片到本地(照相功能) -samhy
  2. 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版
  3. 跨域 (1) jsonp 跨域
  4. 【算法】设计算法求所有强连通分量的完整代码(kosaraju算法)
  5. 西门子标准报文1常用_基于Snap7使用C#编程访问西门子PLC系列教程(2)-S7协议
  6. 谈一下JavaScript的语法
  7. Python中的注释和算数运算符
  8. 什么是DVI光端机?dvi光端机的优势有哪些?
  9. taskctl控制容器之定时器个人理解
  10. 赶紧收藏!这些思维导图软件,手机上也能用
  11. Java 类目树形结构查询
  12. 笔记本计算机涂硅脂,笔记本cpu怎么更换散热硅脂?笔记本电脑cpu涂硅脂教程
  13. 03_Unity小窍门100条(下)
  14. 集合查询和查询结果处理
  15. testerhome学习笔记3_Bash应用一
  16. 内网穿透软件对比——cpolar : 网云穿(下)
  17. 全新体验的飞冰 2.0 正式发布
  18. MOOS-ivp 实验四 MOOS编程入门(1)
  19. vue-element-admin 默认英文版改回中文版
  20. 外贸网站到底选什么购物车网店系统最好

热门文章

  1. python 如何获取列表(List)中指定元素的下标? index() enumerate() 获取重复元素下标
  2. 文件分类tkinter UI小程序,界面点击,后台自动归档到某个文件夹
  3. linux——vim命令详细说明
  4. mybatis中getMapper是怎么通过动态代理得到dao接口的实现类并执行mapper文件sql语句的
  5. Special Numbers 进制(1100)
  6. android图库文件夹乱,防止文件夹包含在Android图库中 | MOS86
  7. c语言调用dll实例 结构体传参,C# 调用Dll 传递字符串指针参(转)
  8. json spr路驾驶技术视频api_每天弄个小爬取之Python爬取批量爬取B站小视频
  9. python产生fir滤波器_Python中使用FIR滤波器firwin后信号的相移
  10. win10 2004 最新版图文安装流程