码迷,mamicode.com
首页 > 其他好文 > 详细

埃及分数问题(JLNUOJ 2372)

时间:2019-08-29 23:45:49      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:判断   mes   lse   style   因此   简单   color   ret   pre   


#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)

标签:判断   mes   lse   style   因此   简单   color   ret   pre   

原文地址:https://www.cnblogs.com/newstartCY/p/11432351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!