埃及分数问题(JLNUOJ 2372)
Posted newstartcy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了埃及分数问题(JLNUOJ 2372)相关的知识,希望对你有一定的参考价值。
#include<iostream>//埃及分数问题 (egypt)分数 简单实现 #include<cstdio> using namespace std; void egypt(int a,int b) //判断特例 if(a==1 || b%a==0) cout<<b/a<<" "<<endl; return; while(1) int c = b / a + 1; //c 为最大的埃及分数 cout<<c<<" "; a = a*c - b;//new 分子 b = b*c;//new 分母 if(a==1||b%a==0) cout<<b/a<<" "; break; cout<<endl; int main() ios::sync_with_stdio(false); int a,b;//a代表分子,b代表分母 while(cin>>a>>b) egypt(a,b);
埃及分数(贪心的思想)
真分数 A / B
B = A X D + K
B / A = D + K / A < D + 1
A / B > 1/(D + 1)
A/B - 1/C = (AXC -B) / (BXC)
因此可得最大的埃及分数为 B / A + 1
以上是关于埃及分数问题(JLNUOJ 2372)的主要内容,如果未能解决你的问题,请参考以下文章