gpt4 book ai didi

c++ - 数组除法 - 将存储在数组中的两个数字相除的最佳方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:34 25 4
gpt4 key购买 nike

我有两个数组(股息、除数):

dividend[] = {1,2,0,9,8,7,5,6,6};
divisor[] = {9,8};

我需要结果(股息/除数)为:

quotient[] = {1,2,3,4,5,6,7};

我是用数组减法做的:

  • 从被除数中减去除数,直到被除数变为 0 或小于除数,每次将商递增 1,

但这需要很长时间。有更好的方法吗?

最佳答案

做长除法。

有一个大小等于除数加一的临时存储,并初始化为零:

accumulator[] = {0,0,0};

现在运行一个循环:

  1. 商的每一位左移一位。
  2. 将累加器的每一位向右移动一位。
  3. 从最高位开始取被除数的下一位,并将其存储到累加器的最低位。
  4. 算出累加器/除数并将商的最低有效位设置为结果。将累加器设置为余数。

过去常常在没有除法指令的 CPU 的汇编语言中使用相同的算法。

关于c++ - 数组除法 - 将存储在数组中的两个数字相除的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322129/

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