埃及分数

简介: 设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓的埃及分数是指分子为1的分数,如7/8=1/2+1/3+1/24.要求用最少的埃及分数来表示。即:输入A/B,用最少的埃及分数去表示A/B这个分数。

设计一个算法,把一个真分数表示为埃及分数之和的形式。
所谓的埃及分数是指分子为1的分数,如7/8=1/2+1/3+1/24.
要求用最少的埃及分数来表示。
即:输入A/B,用最少的埃及分数去表示A/B这个分数。

贪心算法:

 

 1 #include<stdio.h>
 2 int fun(int A,int B);
 3 int main()
 4 {
 5     int A,B;
 6     scanf("%d%d",&A,&B);
 7     if(A>=B) return 0;
 8     else fun(A,B);
 9     return 0;
10 }
11 int fun(int A,int B)
12 {
13     int D,C,flag=0;
14     printf("%d/%d=",A,B);
15     if(A==1)
16     {
17         printf("%d/%d\n",A,B);
18         return 0;
19     }
20     else 
21     {
22         while(A!=1)
23         {
24             D=B/A;
25             C=D+1;
26             if(flag==0)
27             {
28                 printf("1/%d",C);
29                 flag=1;
30             }
31             else 
32             {
33                 printf("+1/%d",C);
34             }
35             A=A*C-B;
36             B=B*C;
37             if(B%A==0) 
38             {
39                 B=B/A;
40                 A=1;
41             }
42         }
43         printf("+%d/%d",A,B);
44         printf("\n");
45     }
46 }

 

相关文章
|
7月前
|
调度
【核心完整复现】基于目标级联法的微网群多主体分布式优化调度
【核心完整复现】基于目标级联法的微网群多主体分布式优化调度
复选框checkbox的三种状态
复选框checkbox的三种状态
203 0
|
存储 分布式计算 程序员
MapReduce论文中文翻译
<div class="markdown_views"> <p>原文地址: <br><a href="http://labs.google.com/papers/mapreduce.html">http://labs.google.com/papers/mapreduce.html</a></p> <p>译者: alex </p> <h2 id="摘要">摘要</h2>
6874 0
|
Android开发
Android 自定义样式Shape
Android 自定义样式Shape
269 0
Android 自定义样式Shape
|
Java
字符缓冲流、复制Java文件、特有功能及字符缓冲流特有功能赋值Java文件
字符缓冲流、复制Java文件、特有功能及字符缓冲流特有功能赋值Java文件的简单示例
107 0
字符缓冲流、复制Java文件、特有功能及字符缓冲流特有功能赋值Java文件
|
大数据 Apache 流计算
《零基础入门:从0到1学会 Apache Flink》电子版v
大数据实时计算及 Apache Flink 年度Flink 年度学习资料大礼包,300+页实战应用精华总结!
136 0
《零基础入门:从0到1学会 Apache Flink》电子版v
Py之scorecardpy:scorecardpy的简介、安装、使用方法之详细攻略
Py之scorecardpy:scorecardpy的简介、安装、使用方法之详细攻略
Py之scorecardpy:scorecardpy的简介、安装、使用方法之详细攻略
|
数据安全/隐私保护 Python Windows
安装无法继续,因为一个必需文件已损坏或不可用,请从原始源光盘活下载位置重新运行安装程序
了解安装无法继续,因为一个必需文件已损坏或不可用,请从原始源光盘活下载位置重新运行安装程序
917 0
|
前端开发
Cypress系列(50)- wrap() 命令详解
Cypress系列(50)- wrap() 命令详解
480 0
Cypress系列(50)- wrap() 命令详解
|
消息中间件 存储 SQL
ksqlDB基本使用
ksqlDB基本使用
1246 0
ksqlDB基本使用