-9 逆序输出一个整数的各位数字_leetcode两数相加(大整数相加)
题目来源于leetcode第二题两数相加。
题目描述
给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
例如说
输入:
2 4 3
5 6 4
输出:
7 0 8
因为342 + 465 = 807
思路
这道题很好啊,用的是大数运算的思想也叫高精度。就是说一个链表存储一个数,一个节点存一个数位,进行加法运算。
有三个需要注意的地方。首先是如果一个数已经没下一位了就没必要再继续下去了,就像这样
因为是链表我直接就把下一位的地址接过来了。
然后就是可能会有某种极端情况,一直有进位,还有就是会出现结果位数比加数多的可能。就像下面这样。
代码实现
struct ListNode { int val; struct ListNode *next; };#define CARRY(a,b) a=1,b-=10 //高精度加法 struct ListNode* addTwoNumbers(struct ListNode* num1, struct ListNode* num2) { int add= 0; //p是最后结果 struct ListNode* p; p = num1; //进行第一次运算 num1->val += num2->val + add; //有进位 if (num1->val > 9) { CARRY(add, num1->val); } while (NULL != num1->next&&NULL != num2->next) { num1 = num1->next; num2 = num2->next; num1->val += num2->val+add; add = 0; if (num1->val > 9) { CARRY(add, num1->val); } } if (!num1->next)num1->next = num2->next;0 //进行最后的进位运算31 while (add){32 if (!num1->next) {33 num1->next = (struct ListNode*)malloc(sizeof(struct ListNode));34 num1->next->next = NULL;35 num1->next->val = 0;36 }37 num1 = num1->next;38 num1->val++;39 add = 0;40 if (num1->val > 9) {41 CARRY(add, num1->val);42 }43 } 44 return p;45}
-9 逆序输出一个整数的各位数字_leetcode两数相加(大整数相加)相关推荐
- python输入一个正整数、将其按逆序输出_Python实现按照指定要求逆序输出一个数字的方法...
本文实例讲述了Python实现按照指定要求逆序输出一个数字的方法.分享给大家供大家参考,具体如下: 问题是:输入一个数字,按照指定要求逆序输出该数字,很简单,下面是实现: #!usr/bin/env ...
- java实现:使用递归编写一个程序,逆序输出一个非负整数。例如输入1234,输出4321(不含前导0)。
验证集: 输入>输出 123>321 120>21 2040>402 204000>402 直接给代码,注释应该够了. //使用递归编写一个程序,逆序输出一个非负整数. ...
- -9 逆序输出一个整数的各位数字_计算机基础知识: 信息数字化
计算机.数据与信息 无符号位数的表示 (一).四种常用的数制及它们之间的相互转换: 进制 基数 基数个数 权 进数规律 十进制 0.1.2.3.4.5.6.7.8.9 10 10i 逢十进一 二进制 ...
- 如何逆序输出一个整数
给出一个整数,将它逆序输出,首先求出它是一个几位数,利用for循环将数字从高位到低位分别输出.例如1234这个数,首先通过for循环求出,它是一个4位数,然后1234第一次除以1000,得到1并输出, ...
- C语言之逆序输出一个四位数
版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/qq_42680327 题目:从键盘输入一个四位数,要求逆序输出 代码: #include < ...
- PHP输入123逆序输出321,编写程序,将一个三位数逆序输出,比如,原三位数为123,新数为321....
编写一个程序,输入一个三位数,把这个数的百位数与个位数对调,输出对调后的数 参考:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5522 ...
- -9 逆序输出一个整数的各位数字_【每日算法】基础算法——归并排序[求逆序对的数量](四)(思想很经典)...
题目内容 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆 ...
- -9 逆序输出一个整数的各位数字_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...
第二十四题 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 代码: public 第二十五题 一个5位数,判断它是不是回文数. 代码: public 代码2: public ...
- -9 逆序输出一个整数的各位数字_逆序对个数(归并排序)
题目描述 输入 N 组数据,对每组数据输出逆序对个数. 输入 对于每组测试用例,第一行输入此组数据元素个数 x,接下来 x 行,每行一个数,表示元素.(1≤x≤500000)(1≤x≤500000) ...
最新文章
- R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)
- layui遍历json数组_shell脚本:json格式化与字段抓取(下)
- redhat enterprise linux 哪个版本好,Red Hat Enterprise Linux 版本显示中(Santiago)是啥意思?...
- Qt|Linux工作笔记-异步调用ping命令,重定向获取信息,界面显示
- git push 和 pull 时 免密执行的方法
- Url解码,兼容utf-8和gb2312
- nginx并发性能测试
- 使用 MySQL C API 访问 MySQL — 示例
- 机器学习_周志华_西瓜书_学习笔记_第16章--强化学习
- Nignx的修改弱密码套件
- python卖水果_用Python解决一个简单的水果分类问题
- Swift 阳历转农历,农历转公历
- 【3D音效增强神器】Boom 3D for Mac中文版 v1.2.2
- 第二周学习前端总结与感悟(一)
- 达梦数据库监控-DEM 部署
- 计算机英语词汇音频,[听单词] 计算机专业英语词汇音频84,计算机英语单词MP3
- html 中渐变方向,CSS3渐变,就是这么玩
- 来了老弟,表格的渲染
- 18个公认的 世界顶级UI开源框架汇总
- 幼儿园初级职称计算机考试,幼儿园教师考试