【数论 && 找规律】LightOJ
来源:互联网 发布:淘宝怎么查排名 编辑:程序博客网 时间:2024/04/29 23:20
Problem Description
long long H( int n ) {
让你实现这个代码 题目n的范围(1<=n<2^31)
long long res = 0;
for( int i = 1; i <= n; i++ )
res = res + n / i;
return res;
}
思路:
显然暴力肯定会超时,所以肯定是找规律,然而我最讨厌这种类型的题。所以就参考了别人的博客
核心:
n/i=1的个数 n/1 - n/2
n/i=2的个数 n/2 - n/3
以此类推。
我们就可以暴力求1-sqrt(n)的n/i的值。同时求出1的个数,2的个数。当n/sqrt(n) == sqrt(n)的时候,sqrt(n)就被重复计算了,例如17/4 = 4.那么4被计算了两次。所以得减去一次的值。
#include<bits/stdc++.h>using namespace std;int main(){ int T, n, Case = 1; scanf("%d", &T); while(T--) { scanf("%d", &n); int m = sqrt(n); if(m * m > n) m--; long long ans = 0; long long i; for(i = 1; i <= m; i++) { ans += n / i; ans += (n/i - n/(i + 1)) * i; } i--; if(n / i == i) ans -= i;//满足代表sqrt(n)被重复计算了,因为n/sqrt(n)对应值的数目只有一个 所以减i*1 printf("Case %d: %lld\n", Case++, ans); } return 0;}
阅读全文
0 0
- 【数论 && 找规律】LightOJ
- LightOJ 1148 - Mad Counting (找规律)
- lightoj 1010 找规律坑比题
- 【找规律 && 快速幂 && 概率论】LightOJ
- Joseph's Problem 数论 找规律
- BZOJ1432(ZJOI2009)[Function]题解--找规律||数论
- lightoj 1008 - Fibsieve`s Fantabulous Birthday 【数学 找规律】
- LightOJ 1245 - Harmonic Number (II) (找规律)
- LightOJ 1352 Strange Summation(找规律or数位DP)
- lightoj 1010 - Knights in Chessboard (找规律思维)
- lightoj-1008 - Fibsieve`s Fantabulous Birthday【思维】【找规律】
- lightoj-1136 - Division by 3【思维】【找规律】
- LightOJ 1136 - Division by 3(找规律)
- lightoj 1010 - Knights in Chessboard(找规律)
- lightOJ 1052 String Growth(矩阵快速幂,找规律)
- 找规律(约瑟夫的数论问题,uva 1363)
- POJ 2800 Joseph’s Problem 数论找规律
- 【GDKOI2012模拟02.01】数字(找规律&&数论)
- 无废话ExtJs 入门教程六[按钮:Button]
- 深入浅出UML类图
- block,inline和inline-block概念和区别
- 基于CentOS搭建搭建FTP文件服务
- kafka控制offset偏移量
- 【数论 && 找规律】LightOJ
- RxJava基本原理与使用(二)
- 无废话ExtJs 入门教程七[登陆窗体Demo:Login]
- 【版本更新】浏览器控件JxBrowser V6.16发布 | 附下载
- Drawable、Bitmap、Canvas、Paint和 Matrix 的使用(二)
- [13-1]类比路线
- ue4 svn备份目录
- orm思想,概念
- java development kit即JDK的环境变量配置-解决javac没反应