【250天】我爱刷题系列(9)

叨叨两句

  1. 很开心!
  2. 也很紧迫!

题22:多个状态轮流切换

题目描述

书写一个类,类名为Itheima;

类中有一个方法,方法名sum67;

有一个整型数组,返回数组中的数字的总和,如果数组含有数6和7
那么忽略不计入从6开始并延伸到有7的数字段,7后面的数字需要参与运算(每6个将跟随至少一个7)。
返回0表示没有数字。

提示

方法调用期望值
sum67([1,2,2])5
sum67([1,2,2,6,99,99,7])5
sum67([1,1,6,7,2])4
public class Itheima {
    public int sum67(int[] arr){
        if(arr.length == 0){
            return 0;
        }
        
        if(arr.length == 1){
            return arr[0];
        }
    
        int sum = 0;
        boolean flag = true;//标识累加状态切换(flag=true累加=false不累加)
        boolean flag67 = true; //标识判断条件的切换(flag67 = true判断是否是6
                                //flag67 = false判断是否是7)
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == 6 && flag67){
                flag = false;
                flag67 = false;
            } 
            
            if(arr[i] == 7 && !flag67){
                flag = true;
                flag67 = true;
                sum -= 7;//将本次累加不该计入结果的7减去
            }
            
            if(flag){
                sum += arr[i];
            }
            
        }
        return sum;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值