繁体   English   中英

计算数组中所有两位整数的和

[英]Calculate the sum of all two digits integers in an array

我想计算包含两位数的数组中所有整数的总和。 例如:

int[] arr1 = {1, 23, 4, 55};
int[] arr2 = {2, 5, -66, 23};

第一个数组的结果应该是23 + 55 = 78 ,而第二个数组的结果应该是-66 + 23 = -43 我怎样才能做到这一点?

如果要对仅包含两位数字的元素求和,可以使用以下命令:

int[] arr = {1, 23, 4, 55};
int sum = 0;
for (int i : arr) {
    if (Math.abs(i) > 9 && Math.abs(i) < 100) {
        sum += i;
    }
}

您可以使用元素的索引:

int[] arr1 = {1,23,4,55};
int[] arr2 = {2,5,-66,23};

int sum1 = arr1[1] + arr1[3];
int sum2 = arr2[2] + arr2[3];

要获取数组中两个数字的总和:

  1. 调用数组并使用要检索的值的索引在其中返回一个值
  2. 将该值添加到对数组的另一个调用中(同样,指定所需的索引)
  3. 将该值分配给您需要的类型

请记住,在调用数组以访问存储的值时,请使用该值在数组中的索引(或位置)——然后添加一个。 我们使用 indexOfValue + 1 的这个公式,因为大多数语言从第 0 个位置开始索引数组(尽管这并不总是正确的,例如,Fortran 索引其数组从 1 开始。因此“整数 anArray(50)”将创建一个数组存储 50 个 int 元素,从索引 1 开始到索引 50 结束)。 编程语言中这种结构设计的另一个结果是可以使用 sizeOfArray - 1 访问数组的最后一个值。

要澄清这些概念,请查看以下代码:

    int[] a = {1,23,4,55};
    int firstSum = a[1] + a[3]; // performs 23 + 55
    int[] b = {2,5,-66,23};
    int secondSum = b[2] + b[3]; // performs -66 + 23
    int sumOfLastValues = a[a.length - 1] + b[b.length - 1];

我会给你一些我已经尝试过的代码:

int sum1 = 0, sum2 = 0;
            int[] arr1 = {1, 23, 4, 55};
            for(int i: arr1){
                if(i/10 > 0 && i/100 == 0){
                    sum1 += i;
                }
                else if(i/-10 > 0 && i/-100 == 0){
                    sum1 -=i;
                }
            }
            int[] arr2 = {2, 5, -66, 23};
            for(int i: arr2){
                if(i/10 > 0 && i/100 == 0){
                    sum2 += i;
                }
                else if(i/-10 > 0 && i/-100 == 0){
                    sum2 +=i;
                }
            }
        System.out.println(sum1);
        System.out.println(sum2);

结果是:

78
-43

您可以转换为字符串并检查。

    for(int num : v) {
    
    // check for size
    string str = to_string(num);
    if( (str.size() == 2) || (str.size()==3 && (str[0]=='+' || str[0]=='-') ) )
        sum += num;
}

cout<<sum;

可运行代码可以从https://github.com/sankarees/playground/blob/main/calculate-the-sum-of-all-two-digits-integers-in-an-array下载

截图代码:

public static int getSumOfTwoDigits(int[] numbers) {
    int sum = 0;
    for (int number : numbers) {
        int divident = (number < 0 ? number * -1 : number) / 10;
        if (divident > 0 && divident < 10) {
            sum += number;
        }
    }
    return sum;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM