分子为1 的分数称为埃及分数,现输入一个真分数,请将该分数分解为埃及分数。

如:8/11=1/2+1/5+1/55+1/110。

*问题分析与算法设计

若真分数的分子a能整除分母b,则真分数经过化简就可以得到埃及分数,若真分数的分子不能整除分母,则可以从原来的分数中分解出一个分母为b/a+1的埃及分数。用这种方法将剩余部分反复分解,最后可得到结果。

*程序说明与注释

/*注:对源程序作稍许修改,主要是添加了一个外循环,可以直接计算多个真分数的埃及分数,按Ctrl-C退出。具体的算法我没有认真看,有问题请提出,谢谢*/

#include

int main(void)

{

long int a,b,c;

while(true)

{

printf("Please enter a optional fraction(a/b):");

scanf("%ld/%ld",&a,&b); /*输入分子a和分母b*/

printf("It can be decomposed to:");

while(true)

{

if(b%a) /*若分子不能整除分母*/

c=b/a+1; /*则分解出一个分母为b/a+1的埃及分数*/

else{ c=b/a; a=1;} /*否则,输出化简后的真分数(埃及分数)*/

if(a==1)

{

printf("1/%ld\n",c);

break; /*a为1标志结束*/

}

else

printf("1/%ld + ",c);

a=a*c-b; /*求出余数的分子*/

b=b*c; /*求出余数的分母*/

if(a==3) /*若余数为3,输出最后两个埃及分数*/

{ printf("1/%ld + 1/%ld\n",b/2,b); break;}

}

}

return 0;

}

*运行结果

Please enter a optional fraction (a/b): 1/6

It can be decomposed to: 1/6

Please enter a optional fraction (a/b): 20/33

It can be decomposed to: 1/2+1/10+1/165

Please enter a optional fraction (a/b): 10/89

It can be decomposed to: 1/9+1/801

Please enter a optional fraction (a/b): 19/99

It can be decomposed to: 1/6+1/40+1/3960

Please enter a optional fraction (a/b): 8/87

It can be decomposed to: 1/11+1/957

……(按ctrl-c退出)

c语言编程分数化简,C语言编程实例:将真分数分解为埃及分数相关推荐

  1. python埃及分数_C语言将真分数分解为埃及分数代码解析

    问题描述 现输入一个真分数,请将该分数分解为埃及分数. 问题分析 真分数:分子比分母小的分数,叫做真分数.真分数的分数值小于1.如1/2,3/5,8/9等. 分子是1的分数,叫单位分数.古代埃及人在进 ...

  2. 将真分数分解为埃及分数(斐波那契算法步骤)Java

    package com.patience.interview.huawei;import java.util.Scanner;/*** 将真分数分解为埃及分数* @author Green.Gee* ...

  3. 华为机试HJ82:将真分数分解为埃及分数

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将 ...

  4. 华为OJ平台——将真分数分解为埃及分数

    题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...

  5. C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10

    解题思路: 最先想到的是把原数对自己的最大埃及数做减法,直到减完为止. 1. 找最大埃及分数 要找出b/a的最大埃及数(a>b).利用倒数即可推出最大埃及数 a/b = d-k(余数) a=d ...

  6. python 分数化简_C++、Java、Python中都是怎么精确表达分数的?

    你要的东西,STL 库已经有了,叫 std::ratio ,是 C++11 标准的模板类.在 C++11 标准之后,C++委员会加入了大量高等数学相关的函数,beta函数.gamma函数.黎曼Zeta ...

  7. 两个分数化简比怎么化_两个分数的比化简怎么化急用

    1.先找出中主分线,确定分子部分和分母部分,然后这两部分分别进行计算,每部分的计算结果能约分的要约分,最后改成"分子部分/分母部分"的形式,再求出结果. 2.根据分数的基本性质,经 ...

  8. C语言编程b a化简,C语言编程,已知三角形的三边长a,b,c,计算求三角... 如果三角形三边长 a,b,c,满足( )那么这个三角形......

    导航:网站首页 > C语言编程,已知三角形的三边长a,b,c,计算求三角... 如果三角形三边长 a,b,c,满足( )那么这个三角形... C语言编程,已知三角形的三边长a,b,c,计算求三角 ...

  9. C语言——任意分数化简

    #include <stdio.h> #include <stdlib.h> int main() {     int a;     int b;     int c;     ...

  10. c语言程序设计项目化,《C语言程序设计》项目化教学改革

    摘 要:本文以浙江安防职业技术学院安全防范技术专业14级和15级学生为研究对象,对C语言程序设计课程采用机房上课:明确教学目标.加强学生动手能力.开放性考核等方式进行教学方法改革. 关键词:职业技术学 ...

最新文章

  1. 【每日一算法】最后一个单词的长度
  2. linux 下 php 安装 Gearman
  3. 推荐系统的实践与思考(上篇)【转】
  4. Gradle在IDEA中创建web项目
  5. 常见HTTP状态码列表
  6. 业务知识——Logger日志打印规范
  7. Python之路----------内置函数
  8. Django (八) 中间件验证码富文本缓存
  9. Leetcode--904. 水果成篮
  10. java文件名的编码格式_java下载文件名乱码解决方法详解
  11. 关于 # 符号的使用 - 给 厨师 的回复
  12. 在线JSON格式化工具
  13. Spring.Net配置多数据源
  14. mt4 显示服务器时间,MQL4编程学习之MT4显示任意时间周期指标的使用方法
  15. Vue中select默认选中下拉选项第一条(举例iview AutoComplete组件)
  16. 【CSS】浅谈 CSS 中常用的相对长度单位 em, rem
  17. 工业控制信息系统中的商用密码应用思考
  18. 51单片机实战教程(四 延时程序)
  19. 安卓面试中高级安卓开发工程师总结之——如何写一份让HR主动邀请你面试的简历
  20. SQL语言_3 模糊查询和聚合函数

热门文章

  1. hadoop 查看集群的网页监控状态
  2. 转载 DOS/BAT批处理if exist else 语句的几种用法
  3. 下载网页中内嵌的PDF
  4. 使用路由器搭建局域网
  5. 权重计算方法三:变异系数法(Coefficient of Variation)
  6. Druid创始人Eric Tschetter详解开源实时大数据分析系统Druid
  7. Redhat注册下载Redhat Enterprise Linux Download
  8. PyQt5最全27 绘图之drawLine绘制不同类型的直线
  9. Firefox Monitor - 在线免费检测邮箱数据是否泄露
  10. 联想 计算机无线网络设置方法,联想笔记本无线网络开关,详细教您联想笔记本无线网络开关...