以数组表示的大量数字的总和?

Ziezi

数字以相反的顺序存储在数组中。这是一个应将两个数字a相加的函数,并将b和存储在result

public static void SumDigitArraysDifferentSize(int[] a, int[] b, int[] result)
{
      int length = Math.Max(a.Length, b.Length);
      for (int i = 0; i < length; i++)
      {
          int lhs = (i < a.Length) ? a[i] : 0;
          int rhs = (i < b.Length) ? b[i] : 0;

          result[i] = (result[i] + lhs + rhs) % 10;

          int carry = (result[i] + lhs + rhs) / 10;

          for (int j = 1; carry > 0; j++)
          {
              result[i + j] = (result[i + j] + carry) % 10;

              carry = (result[i + j] + carry) / 10;
          }
      }
}

但是,如果我添加例如:

static void Main(string[] args)
{
    int[] lhs = { 9 }
    int[] rhs = { 9, 9 };

    int size = Math.Max(lhs.Length, rhs.Length) + 1;
    int[] result = new int[size];

    SumDigitArraysDifferentSize(lhs, rhs, result);

    PrintArray(result);   
}

结果是:

{ 8, 1, 1 }

而不是预期的:

{ 8, 0, 1 }

我究竟做错了什么?


对于MCVE:

public static void PrintArray(int[] Array)
{
    Console.Write("{");
    int length = Array.Length;
    for (int i = 0; i < length; i++)
    {
        Console.Write(Array[i]);

        if (i < length - 1)
        {
             Console.Write(", ");
        }
    }
    Console.Write("}\n");
}
马尔滕

您正在分配result[i],并在计算时再次使用结果carry

这:

      result[i] = (result[i] + lhs + rhs) % 10;
      int carry = (result[i] + lhs + rhs) / 10;

应该:

      var sum = result[i] + lhs + rhs;
      result[i] = (sum) % 10;
      int carry = (sum) / 10;

与中的计算相同for (int j = 1; ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以数组表示的大量数字的总和?

来自分类Dev

数组中的JavaScript总和数字,每个数字以两位数字顺序表示

来自分类Dev

数字总和-返回0的数组

来自分类Dev

给定总和的数字数组

来自分类Dev

数字总和-返回0的数组

来自分类Dev

数组中不同数字的总和

来自分类Dev

数组中的大量数字/ C++

来自分类Dev

React JS获取数组中的数字总和

来自分类Dev

在数组中找到数字的总和

来自分类Dev

查找字符数组中的数字总和

来自分类Dev

数组中的数字总和不起作用

来自分类Dev

返回数组中数字的总和,数字13除外

来自分类Dev

为什么在这段代码中,我的int总和得到大量的数字?

来自分类Dev

如何找到数组中所有数字的总和?

来自分类Dev

在JAVA中获取数组中数字之差之间的总和

来自分类Dev

整数数组中每个元素的数字总和

来自分类Dev

从总和为X的数组中获取数字列表

来自分类Dev

如何使用纯JS从对象数组中获取数字总和?

来自分类Dev

多维数组中所有数字的总和

来自分类Dev

如何找到数组中所有数字的总和?

来自分类Dev

如何获得数组中这些数字的总和?

来自分类Dev

Java:找到二维数字数组的总和

来自分类Dev

打印出数组中最后 10 个数字的总和?

来自分类Dev

找出一个数字的总和(用c表示)

来自分类Dev

如何在数组的各个部分中存储大量数字,然后将数字相加?

来自分类Dev

从每个数组中提取一个数字,以使数字总和为0?

来自分类Dev

一个数字与一个数字数组之差的总和

来自分类Dev

Javascript函数,用于确定数字是否为数组中数字的任意组合的总和

来自分类Dev

数组内 n 个数字的总和是 x 个数字并创建结果的子集

Related 相关文章

热门标签

归档