gpt4 book ai didi

c - 乘以2个数字,由2个数字链接列表表示

转载 作者:行者123 更新时间:2023-12-02 04:01:45 26 4
gpt4 key购买 nike

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

typedef struct listNode {
int* dataPtr;
struct listNode* next;
} ListNode;

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

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

我已经写了函数
void addNumbers(List n1, List n2, List *sum);

这将返回一个新列表以及其他两个列表的总和。

现在,我必须编写用于乘法的函数:
void multNumbers(List n1, List n2 , List* prod);

而且我对如何实现它还有些执着。这与代码无关,而与如何操作有关。
不用说,我们不允许将数字转换为整数,相乘并将结果转换为列表。

任何帮助将不胜感激。

谢谢。

最佳答案

这将是代码重用的好练习。由于您已经创建了一个将两个链表编号相加的函数,您可以利用该函数执行乘法(的一部分)吗?毕竟,可以通过将第一个数字与第二个数字中的一个数字重复相乘,然后将所有结果相加,来手工执行乘法。尝试以下方法:

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

    关于c - 乘以2个数字,由2个数字链接列表表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166737/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com