收藏 分销(赏)

辗转相除法求最大公约数及最小公倍数.doc

上传人:仙人****88 文档编号:7603818 上传时间:2025-01-10 格式:DOC 页数:4 大小:35.50KB
下载 相关 举报
辗转相除法求最大公约数及最小公倍数.doc_第1页
第1页 / 共4页
辗转相除法求最大公约数及最小公倍数.doc_第2页
第2页 / 共4页
辗转相除法求最大公约数及最小公倍数.doc_第3页
第3页 / 共4页
辗转相除法求最大公约数及最小公倍数.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、辗转相除法求最大公约数和最小公倍数1: /*辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。2: 例如,252和105的最大公约数是21(252 = 21 12;105 = 21 5);3: 因为252 ? 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩4: 小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的5: 还没有变成零的数就是两数的最大公约数。6: */7: #include 8:9: int getGCDAndLCM(int a,int b)10: int max=ab?a:b;

2、/将较大的数赋给max11: int min=(max=a)?b:a;/将较小的数赋给min12: int temp;/暂时存储变量13: while(max!=0)14: temp=min%max;15: min=max;16: max=temp;17: 18: printf(最大公约数为%dn,min);19: printf(最小公倍数为%dn,a*b/min);20: 21:22: int main()23: printf(输入两个数整数值n);24: int a,b;25: scanf(%d,&a);26: scanf(%d,&b);27: getGCDAndLCM(a,b);28:

3、return 0;29: C语言水仙花数算法打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方5的三次方3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:main()int i,j,k,n;printf(water flowernumber is:);for(n=100;n挖经验题库中心C/C+语言程序百例100.数字移动100.数字移动作者:不详来源:互联网 酷勤网收集2008-04-25摘要酷勤网在图中的九个点上,空出中间的点,其余的点上任

4、意填入数字1到8;1的位置固定不动,然后移动其余的数字,使1到8顺时针从小到大排列.移动的规律是:只能将数字沿线移向空白的点.请编程显示数字移动过程。思考题:编写更优化的程序,尽可能减少移动的步数。在图中的九个点上,空出中间的点,其余的点上任意填入数字1到8;1的位置固定不动,然后移动其余的数字,使1到8顺时针从小到大排列.移动的规律是:只能将数字沿线移向空白的点.请编程显示数字移动过程。*问题分析与算法设计分析题目中的条件,要求利用中间的空白格将数字顺时针方向排列,且排列过程中只能借空白的点来移动数字.问题的实质就是将矩阵外面的8个格看成一个环,8个数字在环内进行排序,同于受题目要求的限制只

5、能将数字沿线移向空白的点,所以要利用中间的空格进行排序,这样要求的排序算法与众不同.观察中间的点,它是唯一一个与其它8个点有连线的点,即它是中心点.中心点的活动的空间最大,它可以向8个方向移动,充分利用中心点这个特性是算法设计成功与否的关键.在找到1所在的位置后,其余各个数字的正确位置就是固定的.我们可以按照下列算法从数字2开始,一个一个地来调整各个数字的位置.*确定数字i应处的位置;*从数字i应处的位置开始,向后查找数字i现在的位置;*若数字i现在位置不正确,则将数字i从现在的位置(沿连线)移向中间的空格,而将原有位置空出;依次将现有空格前的所有元素向后移动;直到将i应处的位置空出,把它移入

6、再次空出中间的格.从数字2开始使用以上过程,就可以完成全部数字的移动排序.编程时要将矩阵的外边八个格看成一个环,且环的首元素是不定的,如果算法设计得不好,程序中就要花很多精力来处理环中元素的前后顺序问题.将题目中的3X3矩阵用一个一维数组表示,中间的元素(第四号)刚好为空格,设计另一个指针数组,专门记录指针外八个格构成环时的连接关系.指针数组的每个元素依次记录环中数字在原来数组中对应的元素下标.这样通过指针数组将原来矩阵中复杂的环型关系表示成了简单的线性关系,从而大大地简化了程序设计.*程序说明与注释#includeint a=0,1,2,5,8,7,6,3; /*指针数组.依次存入矩阵中构成环的元素下标*/int b9; /*表示3X3矩阵,b4为空格*/int c9; /*确定1所在的位置后,对环进行调整的指针数组*/int count=0; /*数字移动步数计数器*/

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服