首页 > 解决方案 > 为什么数组中的元素总是零?

问题描述

我必须编写一个名为 productOfPrevious 的方法,该方法接受一个整数数组并返回一个与输入大小相同的整数数组。返回数组中的每个单元格都是该单元格与所有先前单元格的乘积。

    void l3() {
            int[] arr = {1,2,3,4,5};
            int[] retArr = productPrevious(arr);

            for (int elem: retArr){
                System.out.print(elem + " ");
            }
        }

        public int[] productPrevious (int[] arr){
            int[] retArr = new int[arr.length];
            int product = 0;

            for (int i = 0; i < arr.length; i++){
                product = 0;
                for (int j = 0; j <= i; j++){
                    product *= arr[j];
                }
                retArr[i] = product;
            }
            return retArr;
        }

这是我的代码。但我不知道为什么输出数组中的元素总是为零。

输入:{1、2、3、4、5}

我想要的输出:{1、2、6、24、120}

我得到的输出:{0, 0, 0, 0, 0}

我的代码有什么问题吗?

标签: javaarrays

解决方案


因为您的产品变量默认为 0。

0 *(任何其他数字)= 0

将您的产品变量设置为 1 以解决问题。


推荐阅读