"1+2+3+4+...+100" = 5050

public class LeftSumRight_END {
    public static void main(String[] args) {
        /*
        1 2 3 4 5 6 7      1 7, 2 6, 3 5, 4        :  8+8+8+4 
        0 1 2 3 4 5 6 7    0 7, 1 6, 2 5, 3 4    :  7+7+7+7
        1 2 3 4 5 6         1 6, 2 5, 3 4           :  7+7+7
        0 1 2 3 4 5 6     0 6, 1 5, 2 4, 3         :  6+6+6+3

        数字必须从小到大进行排列;如果是偶数个则无需算中间数;如果是奇数个则需要算中间数
        如果0开头,则前后累加和为最后一个数;如果1开头,则前后累加和为最后一个数加1
        */
        int num[] = {1,2,3,4,5,6,7};
        int sum = 0;
        if(num[0] == 0) {
            int num2[] = Arrays.copyOf(num, num.length-1);
            System.arraycopy(num, 1, num2, 0, num.length-1);
            sum = sumNum(num2);
        } else {
            sum = sumNum(num);
        }
        System.out.println("数组元素最后相加的结果是:"+sum);
    }
    // 进行前后相加的方法
    static int sumNum(int num[]) {
        int sum = 0;
        int lenght = num.length;
        int mid = lenght / 2;
        if(lenght % 2 == 0) {
            sum = mid * (num[lenght-1]+1);
        } else {
            sum = mid * (num[lenght-1]+1) + num[mid];
        }
        return sum;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值