hdu 2225 求分母不超过m的最接近sqrt(n)的分数
来源:互联网 发布:nfc手机支付软件 编辑:程序博客网 时间:2024/04/28 13:55
思路:
sqrt(n)=sqrt(i*i*n)/i
所以这个以i为分母的分子一定是【sqrt(i*i*n)】或【sqrt(i*i*n)】+1。所以遍历所以i找到那个最接近的分数。
这里比较两个分数谁更接近sqrt(n)时,将sqrt(n)平方,然后通分,比较分子即可。
#include<bits/stdc++.h>using namespace std;#define mod 1000000007#define PI acos(-1.0)#define INF 0x3f3f3f3ftypedef long long LL;typedef unsigned long long ULL;LL N,M;LL x,y;LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}int main(){ while(~scanf("%lld%lld",&N,&M)){ x=y=1; for(LL i=1;i<=M;i++){ LL t=(LL)sqrt(i*i*N); for(LL d=0;d<=1;d++){ if(abs((t+d)*(t+d)*y*y-i*i*y*y*N)<abs(x*x*i*i-i*i*y*y*N)){ y=i; x=t+d; } } } LL g=gcd(x,y); printf("%lld/%lld\n",x/g,y/g);} return 0;}
0 0
- hdu 2225 求分母不超过m的最接近sqrt(n)的分数
- 【HDU 2225】【数学题 构造】【求不大于sqrt(n)的分数, 分母最大为m】
- [Violet 2]棒球 (求两分数间分母最小的分数)
- m表示为一些不超过n的自然数之和
- m表示为一些不超过n的自然数之和
- [OpenJudge-NOI]最接近的分数
- 找最接近小数的分数
- 求不超过N的正整数中因子最多的数
- YT14-HDU-求1/n的第m位数
- 求m,n的最大公约数
- 求m的n次方
- O(n)时间求最接近中位数的k个数
- O(n)时间求最接近中位数的k个数
- 假设某一班级有M名学生,没人考N门功课,试设计两个c++函数,(1)求第i个学生N门功课的平均分数。(2)求第j门课程的平均分数
- 统计数字(求最接近的两个数字)
- 对自己的估计好比分母,分母愈大则分数的值愈小
- POJ NOI MATH-7832 最接近的分数
- pku--3979 分数加减法(注意分子为0,分母为1的情况)
- RecyclerView的分割线:ItemDecoration
- 结构体指针
- Atomikos
- 原生javascript的动态效果demo
- 代码整洁之道总结(二)
- hdu 2225 求分母不超过m的最接近sqrt(n)的分数
- JOTM介绍
- Windows下编译Ruby源代码
- Acticle 3:javascript变量:局部变量、全局变量、闭包
- 58. Length of Last Word
- Android 自定义view-仿新浪微博#话题#插入EditText
- JAVA从菜鸟【入门】到新手【实习】一一Python研发工程师:技能体系
- java与C++之间进行SOCKET通讯要点简要解析
- JS学习总结: