为了账号安全,请及时绑定邮箱和手机立即绑定

给定条件的数组总和

给定条件的数组总和

尚方宝剑之说 2022-07-20 10:13:16
问题是打印具有以下条件的数组的总和:如果数组有 6 和 7 的连续顺序,则忽略 6 和 7 之间的数字并考虑其他数字来计算总和。样本输出:输出:22 表示 [10,3,6,1,2,7,9] [即 10+3+9]输出:19 代表 [7,1,2,3,6]输出:12:10 for [1,6,4,7,9, 1]我的代码:int sum=0;for (int i=0; i<n.length-1; i++) {    if (n[i]==6 && n[i+1]==7) {         continue;     }     else{         sum+=n[i];     }}System.out.println(sum);我没有得到预期的输出。我知道我的逻辑并不完美,但我不知道该怎么做。因此,任何帮助或指导都会非常有帮助。提前致谢。
查看完整描述

4 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

可以通过查找 7 的嵌套循环来完成,尽管这会变得很棘手,具体取决于我们应该如何处理嵌套的 6 和 7。在下面的示例 6、6、7 中,中间的 6 被忽略:


int[] n = {1,6,3,7,6,6,7,1};

int sum = 0;

outer:

for (int i = 0; i < n.length; i++) {

    if (n[i] == 6) {

        for (int j = i + 1; j < n.length; j++) {

            if (n[j] == 7) {

                i = j;

                continue outer;

            }

        }

    }

    sum += n[i];

}


System.out.println(sum); // 2


查看完整回答
反对 回复 2022-07-20
?
达令说

TA贡献1821条经验 获得超6个赞

public static void main(String[] args) {

    //int arr[]= {10,3,6,1,2,7,9};

    //int arr[]= {7,1,2,3,6};

    int arr[]= {1,6,4,7,9};

    int n=arr.length; //the length of the array

    int sum1=0,sum2=0,sum3=0;

    boolean flag=false;


    for(int i=0;i<=n-1;i++) {

        for(int j=n-1;j>=1;j--) {

        if(arr[i]==6 && arr[j]==7 ) {

            flag= true;

            break;

        }

    }

    }

    

if(flag) {

    for(int i=0;i<=n-1;i++) {

        if(arr[i]==6) {

            break;

        }

        else {

            sum1+=arr[i];

        }

    }

    

    for(int j=n-1;j>=1;j--) {

        if(arr[j]==7) {

            break;

        }

        else {

            sum2+=arr[j];

        }

    }

    int result=sum1+sum2;

    System.out.println(result);

}

else {

    for(int k=0;k<n;k++) {

        sum3+=arr[k];

    }

    System.out.println(sum3);

}

}


查看完整回答
反对 回复 2022-07-20
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

 int[] n = {10,3,6,1,2,7,9};

 int sum = 0,d=0;    

 for(int i=0;i<n.length-1;i++){

     if(n[i]==6){

         for(int j=n.length-1;j>=0;j--){

             if(n[j]==7)

             break;

             d=d+n[j];

         }

         break;

      }

     sum=sum+n[i];

  }

 System.out.println(d+sum); 

 }


查看完整回答
反对 回复 2022-07-20
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

    int sum=0,i;

    boolean add = true;

    int[] array = new int[]{1,6,4,7,9};

    for(i=0; i<array.length;i++)

    {


        if(array[i] != 6 && add==true)

            sum = sum+array[i];

        else if(array[i] == 6){

            if((i+1) == array.length)

                sum = sum+array[i];

            else

                add = false;

        }

        else if(array[i] == 7)

            add = true;

    }

    System.out.println(sum);



查看完整回答
反对 回复 2022-07-20
  • 4 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信