C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10
解题思路:
最先想到的是把原数对自己的最大埃及数做减法,直到减完为止。
1. 找最大埃及分数
要找出b/a的最大埃及数(a>b)。利用倒数即可推出最大埃及数
a/b = d…k(余数)
a=d * b + k; a /b=d + k /b; b /a= 1 /(d + k /b);
这里的k/b小于1;所以b/a的最大埃及数为1 /(d+1)
分母大的反而小;然后对b/a做减法即可
2 . 对自己循环做减法
令c=d+1;
但不能直接用分数的形式做减法——b/a - 1 /c= ( b * c -a) /(a*c);
然后就进行下一次的找最大埃及数 直到a/b没有余数即可。
3 . 循环出口
当b /a没有余数时,最后的那个埃及分数就为1 /d了;就可以不用再循环了。
代码部分:
#indlude <stdio.h>
void main()
{
int a,b,c,d;
scanf("%d%d",&a,&b);
printf("%d/%d=",a,b);
while(0 != b%a)
{
d=b/a;
c=d+1;
printf(“1/%d+”,c);
a=ac-b;
b=bc;
}
printf(“1/%d”,b/a);
}
C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10相关推荐
- 【数据结构和算法设计】算法篇(7) 贪心法
文章目录 7.1 贪心法概述 7.1.1 什么是贪心法 7.1.2 用贪心法求解的问题应具有的性质 1. 贪心选择性质 2. 最优子结构性质 7.1.3 贪心法的一般求解过程 7.2 求解活动安排问题 ...
- 形如:1/a 的分数称为单位分数。 可以把1分解为若干个互不相同的单位分数之和。 例如: 1 = 1/2 + 1/3 + 1/9 + 1/18 1 = 1/2 + 1/3 + 1/10 + 1/1
形如:1/a 的分数称为单位分数. 可以把1分解为若干个互不相同的单位分数之和. 例如: 1 = 1/2 + 1/3 + 1/9 + 1/18 1 = 1/2 + 1/3 + 1/10 + 1/15 ...
- 【数据结构和算法设计】算法篇(11) 概率算法和近似算法
文章目录 12.1 概率算法 12.1.1 什么是概率算法 1. 概率算法的特点 2. 概率算法的分类 3. 随机数生成器 12.1.2 蒙特卡罗类型概率算法 12.1.3 拉斯维加斯类型概率算法 1 ...
- matlab 算法设计,计算方法——算法设计及其MATLAB实现
引论 0.1 算法重在设计 0.2 直接法的缩减技术 0.3 迭代法的校正技术 0.4 算法优化的松弛技术 小结 习题0 章 插值方法 1.1 插值平均 1.2 Lagrange插值公式 1.3 逐步 ...
- c语言程序设计第2章,C语言程序设计第2章 结构化程序设计与算法.ppt
C语言程序设计第2章 结构化程序设计与算法.ppt 现在人们公认的具有"良好风格"的程序设计方法之一是所谓的"结构化程序设计方法".其核心是规定了算法的三种基本 ...
- 算法设计与分析第二章课后作业
第二章 一.单选题 1 [单选题]给定字符集{a,b,c,d,e,f},若用定长码编码,至少需要几位二进制位() A.1位 B.2位 C.3位 D.4位 正确答案: C 我的答案:C 得分: 5.0分 ...
- 基于Python+Open CV的手势识别算法设计
素材资料下载: 基于Python+OpenCV的手势识别算法设计源代码材料-机器学习文档类资源-CSDN下载采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中进行需要库( ...
- 数据结构实验报告——排序算法设计及分析(排序单链表)
一.实验目的和要求 通过学习多种排序算法,体会对同一种操作多种不同的算法设计:通过比较各排序算法对于数据存储结构的要求,体会算法设计不依赖于数据存储结构,而算法实现依赖于数据存储结构:通过分析排序算法 ...
- c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc
C语言程序课程设计宿舍管理软件.doc 课程设计(论文) 题 目 名 称 宿舍管理软件 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 .专 业 信息工程系.信息大类 指 导 教 师 ...
最新文章
- 中国如何成为一流国家
- Qt/PyQt中使用系统全局的快捷键
- Web.py Cookbook 简体中文版 - Hello World!
- 关于用批处理写ftp上传文件
- python tts 保存_Python 文件和目录操作学习
- Redis Config Get 命令
- 50年代黄岩师专_300多位30、40和50年代获得第一份技术工作的开发人员的故事
- SAP License:ReportPainter报表显示JPY等无小数位货币时少两位
- 实操长文|评估风控策略效果(全)
- sqlite中字符串含有单引号的处理
- Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2问题解决
- adb重启或关机手机命令
- edius隐藏快捷键_EDIUS 常用快捷键
- 黄金分割法,你会了吗?
- Laravel Scout 包在 Elasticsearch 中的使用记录
- 计算机硬件系统外设是指,计算机硬件系统.
- mysql的binlog开启方式,查看方式.三种binlog模式介绍.以及使用binlog恢复数据.删除binlog
- android来电归属地提醒
- 笔记本F1音量键常亮,电脑没声音?这里有妙招。
- 360浏览器兼容问题html,该页面显示了360浏览器中的异常兼容性问题