Multiples of 3 and 5

原题

题意如下:

找出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<<endl;
}
return 0;
}

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

附上原题链接:https://www.hackerrank.com/contests/projecteuler/challenges/euler001/submissions/code/7962817

最新文章

  1. [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式
  2. 智能路由器操作系统OpenWrt
  3. IntelliJ IDEA 12 与 Tomcat7 配置
  4. [Linux]安装phpredis扩展
  5. 2016---ios面试题
  6. Linux内核OOM机制的详细分析(转)
  7. webview--网络超时
  8. sqlserver 批量删除存储过程和批量修改存储过程的语句
  9. RealSense 3D实感体验:前景广阔目前应用少
  10. Mysql InnoDB彻底释放磁盘空间
  11. codility上的练习(3)
  12. SonarQube代码质量管理平台工具
  13. ASP.NET用户控件操作ASPX页面
  14. JPA 系列教程18-自动把firstName+lastName合并为name字段
  15. 《项目架构那点儿事》——快速构建Junit用例
  16. 解决 Cannot uninstall &#39;pyparsing&#39; 问题
  17. 用yum快速搭建LAMP平台
  18. [LeetCode] Majority Element 求大多数
  19. Git 命令收集
  20. day 69 权限的设置

热门文章

  1. Mars的自语重出江湖,祝大家端午节安康
  2. 解决android SwipeRefreshLayout recyclerview 不能下拉
  3. wireshark如何过滤 http数据包
  4. SSD在SQLServer中的应用
  5. JAVA中取子字符串的几种方式
  6. Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划
  7. struts1+spring+myeclipse +cxf 开发webservice以及普通java应用调用webservice的实例
  8. log4j总结
  9. LCLFramework框架之IOC
  10. juniper 550M訪问自身公网IP回流内部IP