新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
n1=i; i=m1%n1; } printf(最大公约数 = %d\n,n1); printf(最小公倍数 = %d\n,m*n/n1);}}如图所示,望采纳。。
目前创新互联已为上千家的企业提供了网站建设、域名、网站空间、网站托管运营、企业网站设计、乌恰网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
下面用到了递归解决,不知楼主能否看懂。不懂用百度hi和我私聊我也很乐意。递归只是求最大公约数,通过最大公约数求最小公倍数。
int m,n,r,a,b;b=m*n;while(n!=0){ r=m%n;m=n;n=r;} a=m;b=b/a;a是最大公约数b是最小公倍数,程序输入输出自己写。最大公约数用的是欧几里德算法,最小公倍数为两数相乘除以最大公约数。
1、n=r;r=m%n;} printf(两个数字的最大公约数为%d\n,n);getch();} 这个算法就是把你初中算最大公约数的过程给程序化了。你用以前的方法在纸上算算最大公约数 再对照WHILE里面的算法 就能明白咋回事了。
2、你可以编写一个程序,实现辗转相除法(欧几里得算法),来求得最大公约数,然后用两个数相乘再除以最大公约数来,得到最小公倍数。
3、编写两个函数,分别求两个整数的最大公约数和最小公倍数。
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。
int r;while(r==0)这两句中r还没有赋值就拿来引用了,属于严重错误。
思路:求两个数的最大公约数使用辗转相除法。辗转相除法,又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。