【欧拉计划】3或5的倍数

news2024/9/22 21:36:06

题目链接:3或5的倍数

解法一:暴力枚举

C语言代码

#include<stdio.h>
int main (){
    int sum = 0;
    for(int i = 0;i<1000;i++){
        if(i%3==0 || i%5==0)
            sum +=i;
    }
    printf("%d\n",sum);
    return 0;
}
//运行结果:233168

上面这个解法的时间复杂度为O(N),因为数据量小,所以可以使用暴力。
但如果把题目的1000变成 100 0 10000 1000^{10000} 100010000那么暴力解法的运行时间将非常高,因为需要枚举的数量会呈指数级增长。

Java代码

public class Main {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 0; i < 1000; i++) {
            if (i % 3 == 0 || i % 5 == 0) {
                sum += i;
            }
        }
        System.out.println(sum);
    }
}

解法二:容斥原理

容斥原理常用于解决包含多个集合的计数问题,其基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果 既无遗漏又无重复。

本题,我们假设3的倍数的集合叫做集合A,5的倍数的集合叫做集合B。根据容斥原理,我们需要计算集合A和集合B的交集,既是3的倍数又是5的倍数的个数。
所以,根据容斥原理,我们可以使用以下公式计算交集的大小: ∣ A ∩ B ∣ = ∣ A ∣ + ∣ B ∣ − ∣ A ∪ B ∣ |A ∩ B| = |A| + |B| - |A ∪ B| AB=A+BAB

知道了这些,这道题就简单了。接下来,我们需要计算小于1000的自然数中所有3或5的倍数的和。
3或5的倍数的和 = 3的倍数的和 + 5的倍数的和 - 15的倍数的和

求1000以内3或5或15的倍数的和,可以使用等差数列求和公式: S = 1 2 n ( a 1 + a n ) S=\frac{1}{2} n\left ( a_{1}+ a_{n}\right ) S=21n(a1+an)
C语言代码

#include<stdio.h>
int main (){
    int sum3 = (3+999/3*3)*(999/3)/2;
    int sum5 = (5+999/5*5)*(999/5)/2;
    int sum15 = (15+999/15*15)*(999/15)/2;
    printf("%d\n",sum3+sum5-sum15);
    return 0;
}

Java代码

public class Main {
    public static void main(String[] args) {
        int sum3 = (3 + (999 / 3) * 3) * (999 / 3) / 2;
        int sum5 = (5 + (999 / 5) * 5) * (999 / 5) / 2;
        int sum15 = (15 + (999 / 15) * 15) * (999 / 15) / 2;
        int result = sum3 + sum5 - sum15;
        System.out.println(result);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/901552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现CSO-BP布谷鸟优化算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览…

【BUG】Docker启动MySQL报错

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

Java之继承详解二

3.7 方法重写 3.7.1 概念 方法重写 &#xff1a;子类中出现与父类一模一样的方法时&#xff08;返回值类型&#xff0c;方法名和参数列表都相同&#xff09;&#xff0c;会出现覆盖效果&#xff0c;也称为重写或者复写。声明不变&#xff0c;重新实现。 3.7.2 使用场景与案例…

基于STC15单片机-LM35-DS8B20温度测量-DS1302计时-proteus仿真-源程序

一、系统方案 本设计采用STC15单片机作为主控器。 DS18B20采集温度值送到液晶1602显示。 DS1302计时&#xff0c;日期送到液晶1602显示。 LM35采集另一路温度值送到数码管显示。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /IO初始化为…

Azure应用程序网关

文章目录 什么是应用程序网关实战演练创建虚拟网络创建虚拟机创建应用程序网关测试搭建结果 什么是应用程序网关 Azure应用程序网关是一种托管服务&#xff0c;用于提供安全、可缩放的 Web 应用程序前端点的应用程序传送控制和保护。它可以通过 SSL 终止、cookie 基于会话持久…

adb devices存在连接emulator-5554怎么办

执行adb kill-server 发现还是有5554这条数据&#xff0c;可以采用window杀死端口号的方法。 netstat -ano | findstr 5554 &#xff0c;去查看pid是什么 得到pid&#xff0c;杀死这个pid taskkill /f /pid xxx

项目——电子词典(客户端、服务器交互,字典导入,单词查询)

一、项目要求 登录注册功能&#xff0c;不能重复登录&#xff0c;重复注册单词查询功能历史记录功能&#xff0c;存储单词&#xff0c;意思&#xff0c;以及查询时间基于TCP&#xff0c;支持多客户端连接采用数据库保存用户信息与历史记录将dict.txt的数据导入到数据库中保存。…

Kestrel和ISS服务器下的配置

一、Kestrel服务器 Kestrel是ASP.NET Core框架中的一个跨平台的Web服务器。它是ASP.NET Core应用程序默认的HTTP服务器&#xff0c;并且可作为独立的Web服务器来托管ASP.NET Core应用程序。 Kestrel具有以下特点和功能 1、跨平台 Kestrel是完全跨平台的&#xff0c;可以在Wind…

git压缩/合并多次commit提交为1次commit提交

git压缩/合并N次commit提交为1次commit提交 假设有最近3次提交&#xff1a; commit_id1 commit_id2 commit_id3目标是把以上3次commit合并成1个commit&#xff0c;注意&#xff0c;最新的commit提交在最上面。 在git bash里面的操作步骤&#xff1a; &#xff08;1&#xff0…

Mac 开发 Tang Nano FPGA 指南(使用终端和使用 VS Code 和插件,适用所有 Gowin FPGA)

最近收到了一个 Tang nano 9K FPGA开发板&#xff0c;就想借此机会研究一下。 官方文档里介绍如果想使用高云的 FPGA&#xff0c;就需要使用 GOWIN IDE&#xff0c;但是需要申请 license 提交一堆资料&#xff0c;我是别人送的就不太方便让别人弄。加上 IDE 其实并不是很适合学…

QT SSL handshake failed问题分析与解决 QT基础入门【网络编程】openssl

问题: 使用https方式进行post 和get请求时,有时候会出现SSL handshake failed的问题,其实是调用Qt QNetworkAccessManager出现的问题。 其实SSL握手是建立HTTPS连接过程的第一步。为了验证和建立连接,用户的浏览器和网站的服务器必须经过一系列检查(握手),从而建立HTTP…

C++ 网络编程项目fastDFS分布式文件系统(五)--nginx+fastdfs

目录 1. 文件上传下载流程 2. Nginx和fastDFS的整合 3. 数据库表 3.1 数据库操 3.2 数据库建表 1. 文件上传下载流程 fileID 需要是一个哈希来判定。 2. 文件下载流程 3. 优化 优化思路 : 直接让客户端连接 fastDFS 的存储节点 , 实现文件下载 举例 , 访问一个…

AI重新定义音视频生产力“新范式”

// 编者按&#xff1a;AIGC无疑是当下的热门话题和场景。面对AI带来的技术变革和算力挑战&#xff0c;该如何应对&#xff1f;LiveVideoStackCon 2023上海站邀请到了网心科技副总裁武磊为我们分享网心在面对AI应用场景和业务需求下的实践经验。 文/武磊 编辑/LiveVideoStack …

泛型编程 学习笔记

#include "iostream"using namespace std;template<typename T> void Print(T a) {cout << a << endl; }int main() {int a 5;double b 2.3;char c e;string d "sdfasd";Print(a);Print(b);Print(c);Print(d);return 0; } 它可以不用…

关于springboot项目测试文件的目录结构

问题一 我在开发微服务项目的时候&#xff0c;有时候有些微服务是不需要启动类和配置文件的&#xff08;如xuechengService&#xff09;&#xff0c;这时候我们还需要在测试方法中进行测试&#xff0c;这时候我们可以将启动类放在测试类中&#xff0c;注意放在测试类中包的位置…

7-8 韩信点兵

分数 10 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 在中国数学史上&#xff0c;广泛流传着一个“韩信点兵”的故事&#xff1a;韩信是汉高祖刘邦手下的大将&#xff0c;他英勇善战&#xff0c;智谋超群&#xff0c;为汉朝建立了卓越的功劳。据说韩信的数学水平也非…

Ctfshow web入门 权限维持篇 web670-web679 详细题解 全

CTFshow 权限维持 web670【】 补充一下PHP中单双引号的区别&#xff1a; 单引号和双引号之间最显着的区别在于我们插入字符串和变量时。单引号不插入字符串和变量。**单引号内的内容会按原样打印出来。**在大多数情况下&#xff0c;单引号内没有任何变量或转义序列的编译。 …

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读 BackgroundIntroducitonProblem StatementMethodology Δ W \Delta W ΔW 的选择 W W W的选择 总结 今天带来的是由微软Edward Hu等人完成并发表在ICLR 2022上的论文《LoRA: Low-Rank Adaptation of Large Lan…

Java 日期格式(yyyy-MM-dd HH:mm:ss SSS)

常用格式为&#xff1a;yyyy-MM-dd HH:mm:ss 以 2019-12-31 06:07:59:666 时间为例&#xff1a; 字符 含义 Example y&#xff08;小写的y&#xff09; 年 yyyy---->2019 M&#xff08;大写的M&#xff09; 月 MM---->12 d&#xff08;小写的d&#xff09; 一…

使用Jmeter自带recorder代理服务器录制接口脚本

脚本录制 配置线程组 添加代理服务器 端口 和 录制脚本放置位置可根据需要设置 启动录制 点击启动后 弹出创建证书提示&#xff0c;点击OK 这个证书后续需要使用到 然后可见 一个弹窗。 Recorder . 本质是代理服务录制交易控制 可设置对应数据 方便录制脚本的查看 证书配置…