首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘以2个数字,由2个数字链表表示

乘以2个数字,由2个数字链表表示
EN

Stack Overflow用户
提问于 2012-04-16 06:31:43
回答 1查看 6.5K关注 0票数 3

我需要一些关于我的家庭作业的想法。考虑以下定义:

代码语言:javascript
复制
typedef struct listNode {
    int* dataPtr;
    struct listNode* next;
} ListNode;

typedef struct list {
    ListNode* head;
    ListNode* tail;
} List;

每个列表节点代表一个数字。每个数字由一个列表表示,但以相反的方式表示:数字的最后一个数字是列表的第一个列表节点,数字的第一个数字是列表的最后一个列表节点。

我已经写好了函数

代码语言:javascript
复制
void addNumbers(List n1, List n2, List *sum);

它返回一个新列表,其中包含其他两个列表的总和。

现在我必须编写用于乘法的函数:

代码语言:javascript
复制
void multNumbers(List n1, List n2 , List* prod);

我有点纠结于如何实现它。这不是代码的问题,而是如何做的问题。不用说,我们不允许将数字转换为整数,乘法,然后将结果转换为列表。

任何帮助都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 06:40:26

这将是代码重用的一个很好的练习。既然您已经创建了一个将两个链表编号相加的函数,那么您是否可以使用该函数来执行(部分)乘法?毕竟,乘法可以手动执行,方法是将第一个数字与第二个数字中的一个数字重复相乘,然后将所有结果相加。试着这样做:

  • 创建一个将包含结果的链表编号,并将其设置为零
  • 循环通过第二个数字的数字
    • ,将第一个数字乘以该数字(您应该编写一个单独的函数来执行此操作;如果您成功地编写了加法函数,这应该不会太难)
    • 在结果的末尾添加零,以便数字向左移位足够远
    • 使用Add将数字添加到结果中

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10166737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档