



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言求最大公约数和最小公倍数算法总结 单位:隆回县职业中等专业学校 作者:刘小华 摘 要:介绍自己通过学习使用 C 语言求任意两个数的最大公约数和最小公倍数的基本算法思想、 算法过程、代码实现以及分析比较。关键词: C 语言算法 最大公约数 最小公倍数中图分类号: TP312 文献标识码: AThe algorithm summarization of evaluating the highest common divisor and the lowest common multiple in C LanguageZhao Ye Lin Tutor Teacher: Liu Xiao Hu
2、aAbstract : Introduction to the algorithm basic thought, algorithm process and code realization and its analysing comparison in terms of evaluating the highest common divisor and the lowest common multiple of any two positive integers by learning to using C LanguageKeywords : C Language algorithm th
3、e highest common divisor the lowest common multipleC 语言求最大公约数和最小公倍数可以说是 C 语言编程学习中一个重点和难点,它常常作为计 算机专业学生参加各种考试必须要把握的内容。其算法方面除常用的辗转相除法外、还可以根据数 学定义法、递归调用法等。下面结合我学习以来的笔记整理、总结几种常用的方法进行比较,以便 能够更好的理解、应用、共勉。前提:假设求任意两个整数的最大公约数和最小公倍数,采用函数调用形式进行。1、辗转相除法辗转相除法(又名欧几里德法) C 语言中用于计算两个正整数 a,b 的最大公约数和最小公倍数, 实质它依赖于下面的定理
4、:ab=0gcd(a,b) =gcd(b,a mod b)b!=0根据这一定理可以采用函数嵌套调用和递归调用形式进行求两个数的最大公约数和最小公倍数 现分别叙述如下:、函数嵌套调用其算法过程为: 前提:设两数为 a,b 设其中 a 做被除数 ,b 做除数, temp 为余数1、大数放 a 中、小数放 b 中;2、求 a/b 的余数;3、若 temp=0 则 b 为最大公约数;4、如果 temp!=0 则把 b 的值给 a、 temp 的值给 a;5、返回第第二步; 代码:int divisor (int a,int b)/* 自定义函数求两数的最大公约数 */* 定义整型变量 */if(ab)
5、?b:a; /* 采种条件运算表达式求出两个数中的最小值 */ while(temp0)if (a%temp=0&b%temp=0) /* 只要找到一个数能同时被 a,b 所整除,则中止循环 */ break;temp-;/* 如不满足 if 条件则变量自减,直到能被 a,b 所整除 */return (temp); /* 返回满足条件的数到主调函数处 */#include stdio.hmain()int m,n,t1;printf(please input two integer number:);scanf(%d%d,&m,&n);t1=divisor(m,n);printf(The h
6、igest common divisor is %dn,t1);getch();、定义 2: 对两个正整数 a,b, 如果若干个 a 之和或 b 之和能被 b 所整除或能被 a 所整除,则 该和数即为所求的最小公倍数。代码为:int multiple (int a,int b)int p,q,temp;p=(ab)?a:b; /* 求两个数中的最大值 */q=(ab)?b:a; / * 求两个数中的最小值 */ temp=p; /* 最大值赋给 p 为变量自增作准备 */ while(1) /* 利用循环语句来求满足条件的数值 */ if(p%q=0)break;/* 只要找到变量的和数能被
7、a 或 b 所整除,则中止循环 */p+=temp;/* 如果条件不满足则变量自身相加 */return (p);#include stdio.hmain()int m,n,t2;printf(please input two integer number:);scanf(%d%d,&m,&n);t2=multiple(m,n);printf(The least common multiple is %dn,t2);getch(); 启示:根据数学定义求任意两个正整数的最大公约数和最小公倍数,相对辗转相除法来说,易 懂,容易被学习者接受,但也请读者注意强制退出循环过程的条件、变量的特点及控制语句的使用。结束语结束语C 语言编程关键在于确定好算法及算法过程,同时要合理定义变量和函数及控制语句操作,只 有这样才能保证编程的正确性、 、可读性、实用性。参考文献1 C 程序设计 第二版 谭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州墨尔本理工职业学院《企业资源规划系统与应用》2023-2024学年第二学期期末试卷
- 郑州大学《机器人机械系统》2023-2024学年第二学期期末试卷
- 衡水学院《影视文学研究》2023-2024学年第二学期期末试卷
- 厢式改装车、特种车辆项目效益评估报告
- 罗定职业技术学院《别墅建筑空间设计》2023-2024学年第二学期期末试卷
- 《 峨日朵雪峰之侧》教学设计 2024-2025学年统编版高中语文必修上册
- 扬州大学广陵学院《机器学习实验》2023-2024学年第二学期期末试卷
- 昆玉职业技术学院《工业机器人基础与实践》2023-2024学年第二学期期末试卷
- 浙江外国语学院《水产养殖学创新创业教育》2023-2024学年第二学期期末试卷
- 【化学】认识有机化合物 第一课时教学设计 2024-2025学年高一下学期化学人教版(2019)必修第二册
- 中国烟草总公司郑州烟草研究院笔试试题2023
- 建设法规(全套课件)
- 心衰患者的容量管理中国专家共识-共识解读
- 个人投资收款收据
- H3C全系列产品visio图标库
- 新生儿常见仪器的使用与维护 课件
- 工艺能力分析报告
- 《给校园植物挂牌》课件
- 气道高反应性教学演示课件
- 健身房众筹方案
- 护理带教汇报课件
评论
0/150
提交评论