我正在做一门Java入门课程的作业,我完全被这个问题卡住了。
写一个程序,计算数组中成对数字的差值之和。例如,如果数组是2,3,7,8,9,12,对的差值之和是(2-3) + (7-8) + (9-12) **我们不允许使用内置的Java函数。
这是我到目前为止所拥有的..(我知道这很可怕)
public static void main(String[] args)
{
int[] A = {3, 4, 5, 6, 1, 2};
int total = 0;
int sum = 0;
for(int i = 0; i < A.length; i++)
{
for(int j = i+1; j < A.length; j++)
sum = (A[i] - A[j]);
}
System.out.println(sum);
}
}发布于 2016-10-19 07:34:19
当您使用该嵌套循环时,您正在执行以下操作:
i = 0,
j = 1,
sum = 3 - 4;
// next cycle,
i = 0,
j = 2,
sum = 3 - 5;
// etc...,
i = 1,
j = 2,
sum = 4 - 5,
// etc..;这意味着对于A[i]的每个值,A[i]和A[j + 1]数组中的所有值都是不同的。此外,您也没有更新sum变量。当您执行sum = A[i] - A[i + 1]时,因为此操作只给变量sum一个新值。你想要的是sum+= value,意思是sum = sum + newValue (newValue = A[i] - A[i +1])。此操作将新值与存储在sum中的旧值相加。因此,您需要做的是将两个值相加,并跳转2个索引(i+=2),这样您就不会执行(例如) 3-4、4-5、5-6等操作,您需要的是3-4、5-6等。
试试这个:
public static void main(String[] args)
{
int[] A = {3, 4, 5, 6, 1, 2};
int total = 0;
int sum = 0;
for(int i = 0; i < A.length; i+=2)
{
sum +=(A[i] - A[i + 1]);
}
System.out.println(sum);
}
}发布于 2016-10-19 07:27:21
我不确定你到底粘在什么上,但看起来你没有把总和加起来。
public static void main(String[] args)
{
int[] A = {3, 4, 5, 6, 1, 2};
int total = 0;
int sum = 0,i=0;
while(i<A.length){
sum+= (A[i] - A[i++]);
}
System.out.println(sum);
}https://stackoverflow.com/questions/40119590
复制相似问题