数学方法求1-1000中可以被3或5整除的数之和

首先重温一下等差数列公式:
首先重温一下等差数列
利用公式即可用更小的时间复杂度求解此问题:

package com.company;
import java.util.*;
public class Main{
    public static void main(String args[]) {
        /**
         * 我们将此分解为两个问题,首先解决1-1000以内可以被3或5整除的数各有多少个?
         * 1000/3=333.3333... 1-1000有333个数可以被3整除;
         * 1000/5=200  1-1000有200个数可以被5整除;
         * 1000/15=66.666... 1-1000有66个数可以被15整除;
         */
        int n3 = 1000/3;
        int n5 = 1000/5;
        int n15 = 1000/15;
        /**
         * 接下来使用到等差数列前n项和公式:
         */
        double sum3 = n3*3+n3*(n3-1)/2.0*3;
        double sum5 = n5*5+n5*(n5-1)/2.0*5;
        double sum15 = n15*15+n15*(n15-1)/2.0*15;
        double sum = sum3+sum5-sum15;
        System.out.println(sum);

    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值