c - 关于如何添加保存在两个结构中的两个数字并将它们保存在第三个结构中的任何想法
问题描述
我从用户那里得到了两个数字并将它们保存在两个结构中,例如:
number1 :23456
和number2: 244
现在,我必须添加它们并将它们保存在第三个结构中(请注意,当我得到数字 1 和数字 2 时,我一次得到一个字符 - 这会创建我的数字 1。)
关于如何添加它们的任何想法使用结构??而不仅仅是将两个数字保存在int
类型中,添加它们并将它们保存在第三个结构中。
typedef struct node {
char num;
struct node* next;
}Node;
解决方案
这是简短的算法
- 反转 number1, number2 并将它们别名为 tempn1, tempn2。您可以使用此处的任何方法
- 创建一个新列表(如果您使用某种初始化函数) - 让它成为 number3 和零初始化
carry
- 循环直到 number1 或 number2 都不为 NULL,即
!tempn1 && !tempn2
- 将加法结果存储在 number3 -
addList(number3, (tempn1->num + tempn2->num + carry) % 10)
- 获得新的随身携带 -
carry = (tempn1->num + tempn2->num + carry) / 10
- 递增 tempn1, tempn2
- 将加法结果存储在 number3 -
- 而 tempn1 不为 NULL
- 将加法结果存储在 number3 -
addList(number3, (tempn1->num + carry) % 10)
- 获得新的随身携带 -
carry = (tempn1->num + carry) / 10
- 增加 tempn1
- 将加法结果存储在 number3 -
- 而 tempn2 不为 NULL
- 将加法结果存储在 number3 -
addList(number3, (tempn2->num + carry) % 10)
- 获得新的随身携带 -
carry = (tempn2->num + carry) / 10
- 增加 tempn2
- 将加法结果存储在 number3 -
if carry
addList(number3, carry)
- 反向数字1,数字2,数字3
推荐阅读
- c++ - 用cstring删除c ++中的字符
- python - Python快速将多个字符插入字符串的所有可能位置
- sql - SQL Oracle - 如何找到同一张表的最终值?
- javascript - 登录并抓取使用 CORS(AWS) 和 JS 的网站以使用 Google Apps 脚本填充自身
- gem5 - gem5中的伪指令是什么?
- sql-server - SQL Server 存储过程报告成功执行,但其中的查询不执行
- r - ggplot + imager = 拉伸图像和不正确的热图和 geom_point
- android - 如何在 Horizontal ScrollView 或 RecycleView 中突出显示中心元素?
- python - Python 包需要 freeglut 作为依赖
- python - subprocess.Popen 尝试运行时出现 python 错误。在cmd中工作正常