首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中数字对的差值之和- Java

数组中数字对的差值之和- Java
EN

Stack Overflow用户
提问于 2016-10-19 07:20:33
回答 2查看 678关注 0票数 0

我正在做一门Java入门课程的作业,我完全被这个问题卡住了。

写一个程序,计算数组中成对数字的差值之和。例如,如果数组是2,3,7,8,9,12,对的差值之和是(2-3) + (7-8) + (9-12) **我们不允许使用内置的Java函数。

这是我到目前为止所拥有的..(我知道这很可怕)

代码语言:javascript
复制
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);
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-10-19 07:34:19

当您使用该嵌套循环时,您正在执行以下操作:

代码语言:javascript
复制
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等。

试试这个:

代码语言:javascript
复制
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);
   }
}
票数 1
EN

Stack Overflow用户

发布于 2016-10-19 07:27:21

我不确定你到底粘在什么上,但看起来你没有把总和加起来。

代码语言:javascript
复制
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);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40119590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档