【发布时间】:2020-01-16 17:08:21
【问题描述】:
我试图将两个数组整数成员的总和表示为一个,如下例所示:
int[] array1 = {1,0}
int[] array2 = {5}
int[] result = {1,5}
OR
int[] array1 = {2,4}
int[] array2 = {3,6}
int[] result = {6,0}
(也注意求和进位))等等......,下面是我的尝试,但是它没有通过所有测试场景,有没有遗漏的部分?
public static int[] Process(int[] arr1, int[] arr2)
{
int sum = 0;
int length1 = 0;
int length2 = 0;
int size = 0;
int carry = 0;
if (arr1.Length > arr2.Length) { size = arr1.Length; }
else { size = arr2.Length; }
int[] RepArray = new int[size+1];
for (int i = 0; i < size; i++)
{
sum = ( (length1 - i >= 0) ? arr1[length1 - i] : 0) + ( (length2 - i >= 0) ? arr2[length2 - i] : 0) + carry;
RepArray[(size - i)] = sum % 10;
carry = sum / 10;
}
return RepArray;
}
【问题讨论】:
-
能否分享您遇到错误的输入?
-
{1,2,3} 和 {1,2};但错误或输入不是重点,重点是它自身的逻辑
-
不考虑进位可能加多少位数,如何提前知道大小?
-
你能解释一下规则吗,即 {1,0} + {5} = {1,5} 是怎么回事?看在 $DEITY 的份上——你为什么要这么做??
-
好吧,忽略我的第二个问题,为什么不简单地将数组转换为单个数字,然后进行算术运算,然后将其转换回这个奇数数组表示形式?
标签: c# arrays algorithm data-structures