【欧拉计划第 1 题】3 或 5 的倍数 Multiples of 3 or 5
Problem 1 Multiples of 3 or 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
问题 1 3 或 5 的倍数
如果我们列出所有小于 10 且是 3 或 5 的倍数的自然数,我们会得到 3、5、6 和 9。这些倍数之和是 23。
求 1000 以下所有 3 或 5 的倍数之和。
思路分析
暴力求解
常规思路,找到 1000 以内所有 3 或 5 的倍数,分别求和解决
优化思路
由于暴力解法的算法执行效率很低,需要重复遍历 1000 次,自然效率低下。我们只需要枚举 3 的倍数之和、5 的倍数之和,最后减去它们的最小公倍数之和,便可节省不少时间
1000 以内 k 的倍数和为
(1000−1)k\large \frac{\left (1000-1 \right)}{k} k(1000−1)
代码实现
暴力求解
/** @Author: coder-jason* @Date: 2022-04-04 22:59:48* @LastEditTime: 2022-04-04 23:00:56*/
#include <iostream>using namespace std;int main()
{int sum = 0;for (int i = 0; i < 1000;i++){if (i % 3 == 0 || i % 5 == 0){sum += i;}}cout<<sum<<endl;return 0;
}
优化思路
/** @Author: coder-jason* @Date: 2022-04-04 22:59:48* @LastEditTime: 2022-04-04 23:14:34*/
#include <iostream>using namespace std;int calculate()
{int sum3 = 0, sum5 = 0, sum15 = 0;for (int i = 0; i <= (1000 - 1) / 3; i++){sum3 += i * 3; //求出3的倍数的和}for (int i = 0; i <= (1000 - 1) / 5; i++){sum5 += i * 5; //求出5的倍数的和}for (int i = 0; i <= (1000 - 1) / 15; i++){sum15 += i * 15; //求出15的倍数的和}return sum3 + sum5 - sum15;
}int main()
{cout << calculate();return 0;
}
答案:233168
通过啦,既然是第一次,还是截个图记录下叭。以后也要继续加油啊,数学的优雅永不过时!!
【欧拉计划第 1 题】3 或 5 的倍数 Multiples of 3 or 5相关推荐
- 【欧拉计划第 5 题】最小公倍数 Smallest multiple
Problem 5 Smallest multiple 2520 is the smallest number that can be divided by each of the numbers f ...
- 【欧拉计划第 13 题】 大数之和 Large sum
Problem 13 Large sum Work out the first ten digits of the sum of the following one-hundred 505050-di ...
- 欧拉计划 第5题 Smallest multiple
问题 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any r ...
- 详解欧拉计划第395题:毕达哥拉斯树
本题难度系数为40%(最易5%,最难100%). 毕达哥拉斯树是按如下步骤生成的分形图形: 从一个单位正方形开始,以其中一条边为基底(在图示中,单位正方形下放的边作为基底),给基底所对的边粘连上一个三 ...
- 欧拉计划:第53题 Combinatoric selections
欧拉计划:第53题 Combinatoric selections 无意中知道有这个用编程解决数学题的网站,个人对数学又比较感兴趣,所以打算做个欧拉计划系列,将自己的一些见解分享给大家,第一次写文章, ...
- 欧拉计划(project euler)最详细中文题解
欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...
- 欧拉计划 P429 (数论)
欧拉计划 P429 Sum of squares of unitary divisors(数论) 传送门:https://projecteuler.net/problem=429 题目大意: 定义一个 ...
- 欧拉计划(鱼C论坛)@20161107
1.10以下的自然数中,属于3或5的倍数的数字有3,5,6,9,它们之和为23找出1000以下的自然数中,属于3或5倍数的所有数字之和. """ 欧拉计划 10以下的自然 ...
- 欧拉计划 Project Euler 50-56
Project Euler 50-56 Project Euler: https://projecteuler.net/ Project Euler | 欧拉计划: https://pe-cn.git ...
- python求直角三角形个数的公式_Python3 欧拉计划 问题71-75
EulerProject.png 问题66-70参见:https://www.jianshu.com/p/d0fad6213433 71.有序分数 考虑形如n/d的分数,其中n和d均为正整数.如果n ...
最新文章
- Python的with...as的用法
- 信息系统项目管理师-信息系统项目管理基础核心知识点思维脑图
- 通常每个套接字地址只允许使用一次
- 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?
- Java基础——String类(一)
- 前端读取文件图片信息流;js读取图片不同信息流;js读取图片;前端就js读取二进制数据;前端js读取文件流使用FileReader对象的readAsDataURL方法来读取图像文件;
- Html5学习进阶一 视频和音频
- Android Audio打开输出设备流程(十五)
- 初识计算机操作系统与进程
- 好用的百度文库下载工具: 易读
- 【敏捷2.2】极限编程XP
- 现代经济中的货币创造
- CODOSYS之结构化文本(ST)—— 初级篇(二)简介与基本概念
- eclipseWTP插件
- Java之网络编程(三)TCP
- 全网最详细的深度学习pytorch-gpu环境配置
- Docker容器化开发流程(一)介绍
- 哈哈哈哈哈 哈哈哈哈哈 哈哈哈哈哈
- Ubuntu下安装使用Xfce4
- 如何给妹子优化 Windows ?
热门文章
- H.266/VVC代码学习:普通量化和率失真优化量化(RDOQ)
- 北航提出基于语言桥接的时空交互来进行准确指向性视频对象分割
- 设计分享|基于单片机的计数器设计(汇编)
- 分布式轻量级任务调度框架-XXL-JOB(最全面,附带本人实战)
- python图像_Python图像处理
- palantir_Palantir Technologies有望成为今年最大的IPO
- 选择中医 - 养生之道
- c++ 统计指定字母开头单词的数量
- android 视频通话框架,Android基于腾讯云实时音视频仿微信视频通话最小化悬浮
- html css视频播放器,jQuery和CSS 3定制HTML 5视频播放器