数组乘法

时间:2017-04-18 21:17:37

标签: java arrays for-loop

新程序员在这里,我对我正在研究的代码示例感到有些困惑。基本上我正在使用arrayA并将其传递给我的方法,然后我会喜欢我的方法来获取并乘以每个相邻的数字,因此我的总数应该是962,然后将它返回到main并将其解析出来。

 public class 8a
    {
       public static void main(String [] args)
       {
          int [] arrayA = {10,5,100,3,6,2,30,20};
          int result = sumOfProducts(arrayA);        
       }

       public static int sumOfProducts(int [] a)
       {
           int counter = 1;

           for(int x = 0; x < a.length; x++)
       }

    }

2 个答案:

答案 0 :(得分:1)

你确定962是正确的结果吗?如果您将每个相邻数字相乘并总结结果,则您的返回值应为1540.您似乎只考虑所有其他对:

10*5 ok
5*100 not
100*3 ok
3*5 not 
...etc.

如果你想总结每个相邻对乘法的结果(也是标记为'not'的那些),你可以像这样简单地遍历数组:

       int sum= 0;
       for(int x = 0; x < arrayA.length-1; x++)
         sum+=(arrayA[x]*arrayA[x+1]);

另一方面,如果您真的100%确定您想要遗漏所有其他对并获得962结果:

       int sum= 0;
       for(int x = 0; x < arrayA.length-1; x+=2)
         sum+=(arrayA[x]*arrayA[x+1]);

但是,这仅适用于具有偶数条目的数组。由于这是练习的一部分,我认为第一种解决方案更有可能成为一种解决方案。

答案 1 :(得分:-1)

这是解决方案

 public class 8a
    {
       public static void main(String [] args)
       {
          int [] arrayA = {10,5,100,3,6,2,30,20};
          int result = sumOfProducts(arrayA);        
       }

       public static int sumOfProducts(int [] a)
       {
           int sum= 0;

           for(int x = 0; x < a.length; x++)
             sum+=a[x];

           return sum;
       }

    }