新程序员在这里,我对我正在研究的代码示例感到有些困惑。基本上我正在使用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 :(得分: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;
}
}