数组乘法

数组乘法

问题描述:

新的程序员在这里,我对我正在处理的这个代码示例有点困惑。基本上我将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++) 
     } 

    } 
+0

你的for-loop没有body,所以它什么都不做。您需要添加执行数学描述的代码。 – azurefrog

这里的解决方案

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; 
     } 

    } 
+0

_“因此,我的总数应该出来962”_ - 我很确定你的没有。 – Marvin

+0

你的代码只是将'arrayA'的内容相加。这不是OP实际需要的东西:他说他想“乘以每个相邻的数字” –

你确定962正确的结果?如果你乘每个相邻号码和总结的结果,你的返回值应该是1540你似乎只需要每隔一对考虑:如果你想总结一下每对相邻的结果

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

乘(也标有“不”的),你可以简单地去通过数组是这样的:

 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]); 

但是,这只适用于具有偶数条目的数组。既然这是一个练习的一部分,我会认为第一个解决方案更有可能成为被压缩的解决方案。