博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法题】Multiples of 3 and 5
阅读量:6250 次
发布时间:2019-06-22

本文共 639 字,大约阅读时间需要 2 分钟。

Multiples of 3 and 5

原题

756310-20161130191038662-1060364979.jpg

题意如下:

找出N以内的3和5的倍数的和。

思路

1、刚看到觉得好弱智,直接遍历一遍不就OK了吗?但是第2和第3个测试用例报了TLE,超时。

2、然后想不出来了,搜了一下,发现有一个类似的题计算1000以内的3和5的倍数的和,用的是算出3的倍数的和加上5的倍数的和减去15的倍数的和,因为是直接计算所以不需要遍历,自然就快了。按照同样的思路,可以找到小于N的最大的3的倍数,5的倍数和15的倍数。

代码

int main(){    int t;    cin >> t;    for(int a0 = 0; a0 < t; a0++){        int n;        cin >> n;        long sum = 0;        long p = (n-1)/3;        sum += (3+p*3) * p /2;        p = (n-1)/5;        sum += (5+p*5) * p / 2;        p = (n-1)/15;        sum -= (15+p*15) * p / 2;        cout<
<

其中的sum和p必须为long类型,因为我开始用的int又给WA了,会超出int范围。

附上原题链接:

转载于:https://www.cnblogs.com/puyangsky/p/6119323.html

你可能感兴趣的文章
Jquery 下拉框取值
查看>>
IDEA中使用Maven创建Java Web项目
查看>>
2017.12.25
查看>>
react--1.创建项目
查看>>
11月20日学习内容整理:jquery插件
查看>>
预科班第四次考核总结
查看>>
html
查看>>
数据分析师到底在做什么?
查看>>
pt-heartbeat工具监控MySQL复制延迟
查看>>
指尖下的js —— 多触式web前端开发之三:处理复杂手势(转)
查看>>
spring boot项目配置文件集合
查看>>
cube-ui的用法
查看>>
2015.4.21 SetWindowPos函数用法
查看>>
2011-12-14 调用cmd并获得输入输出+网络访问
查看>>
TCP定时器详解
查看>>
if判断,switch语句
查看>>
Arduino入门之前
查看>>
zoj 1904 Beavergnaw 计算圆柱和圆台的体积
查看>>
整理了一份招PHP高级工程师的面试题(转)
查看>>
学习Raft算法的笔记
查看>>