当前位置: 首页 > 知识库问答 >
问题:

数组的和与乘(在java中)

黄英韶
2023-03-14
At first, the witch had 8 dolls with the following number of elements: {-1, 1, 2, 3, 5, 5, 3, 7}
After the first night, the dolls were merged into 4 with the following number of elements: {0, 5, 10, 10}
After the second night, the 4 dolls were merged into two with the following number of elements: {0, 100}
After the third night, the last 2 dolls were merged into one with 100 elements

只剩下一个嵌套娃娃了,我们有我们的答案:100个。输入/输出

[input] array.integer nestingDollsElements

Number of dolls, 1 ≤ n ≤ 27

Number of elements of each doll, -100 ≤ nestingDollsElements[i] ≤ 100
[output] integer

The number of elements of the last nesting doll.

我已经开始像这样解决它,但我不确定是否需要将这个数组的每两个元素的和复制到新的数组中,以及如何循环。同样,这个循环提供了每个连续元素的和,而不是每对元素的和。很抱歉问了这么愚蠢的问题,如果有人愿意帮忙,我将非常感谢。

public static int getLastNestingDoll (int[] nestingDollsElements) {
    int sum = 0;
    
    if (nestingDollsElements.length % 2 == 0 ) {
                
        for (int i = 0; i  < nestingDollsElements.length; i++) {                
            sum = (nestingDollsElements[i] + nestingDollsElements[i + 1]);              
            System.out.println(sum + " ");              
        }   
    }
    else   { System.out.println("The array is not even"); }     

    return sum;
}

共有1个答案

翟嘉祥
2023-03-14

我不确定是否需要将这个数组的每两个元素的和复制到新的数组中,以及如何循环

是的,合并意味着应该用初始数组的一半大小创建一个新数组,直到合并数组的长度为奇数。

示例实现:

static int[] merge(int ... arr) {
    boolean add = true; // flag to define the function applied while merging
    while (arr.length % 2 == 0) {
        int[] merged = new int[arr.length / 2]; // half of input array
        for (int i = 0, j = 0; i < merged.length; i++, j += 2) {
            merged[i] = add ? arr[j] + arr[j + 1] : arr[j] * arr[j + 1];
        }
        add = !add;
        arr = merged;
    }
    return arr;
}
public static Integer singleNum(int ... arr) {
    if (Integer.bitCount(arr.length) == 1) {
        return merge(arr)[0];
    } else if (Integer.bitCount(arr.length) == 0) {
        return 0; // empty array, nothing to merge
    }
    System.out.println("The size of the input array is not even");
    return null;
}
System.out.println(singleNum(-1, 1, 2, 3, 5, 5, 3, 7));
// -> 100
 类似资料:
  • 本文向大家介绍PHP计算数组中值的和与乘积的方法(array_sum与array_product函数),包括了PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP计算数组中值的和与乘积的方法。分享给大家供大家参考,具体如下: 一、概述: array_sum() 函数用于计算数组中所有值的和。 arra

  • 在R中,我可以在矩阵和(共形)向量之间进行分段乘法,例如: 矩阵的每一行都与相应的向量元素相乘。我也可以对维度大于2的数组做同样的事情: 同样,每一行都与相应的向量元素相乘。我能为3d阵列和2d矩阵做类似的事情吗?我只想让数组中的每个子矩阵都按元素乘以一个矩阵。

  • 本文向大家介绍Java程序的数组元素相乘,包括了Java程序的数组元素相乘的使用技巧和注意事项,需要的朋友参考一下 查找数组元素的乘积。 创建一个空变量(product)。 用1初始化它。 在循环中遍历每个元素(或从用户那里获取每个元素)将每个元素乘以乘积。 打印乘积(product)。 示例 输出结果

  • 问题内容: 在这里和Google搜索了几天,并询问了我的编程朋友。不幸的是,我仍然不知道如何更改我的代码… 我的程序计算给定数字的阶乘。然后提供一个数字,该数字代表析因答案包括的位数。然后,将这些数字的值相加,得出总数。 我的程序适用于1之间的任何数字!和31!…如果您输入超过31!(例如50!或100!),它不起作用,只会返回减号而没有总数。 我希望你们能为我指出正确的方向或给我一些建议。我知道

  • 问题内容: 我试图将2D数组中的每个项乘以1D数组中的相应项。如果我想将每一列乘以一维数组,这非常容易,如numpy.multiply函数所示。但是我想相反,将行中的每一项相乘。换句话说,我想乘以: 并得到 但是我得到了 有谁知道用numpy可以做到这一点吗?非常感谢Alex 问题答案: 像您显示的正常乘法: 如果添加轴,它将使您所需的方式成倍增加: 您还可以移调两次:

  • 我需要找到所输入的数字的和和乘积。我有求和部分,但它唯一的问题是,当我第一次输入一个数字时,它会给我正确的答案,但当我输入另一个数字时,它只是将第一个数字的和与第二个数字的和相加,然后检查这两个和的和是否是奇数(对不起,如果它的混淆)。对于代码的产品部分,我似乎不知道该怎么做。 最后,如果和和积都是奇数,我需要它来说明输入的数字是一个极奇数。 这个Java应用程序检查区间[101,100001]中