两种方法求最大公约数最小公倍数

<pre name="code" class="cpp">/*
*coyright(c)2014 龙城无泪
*All rights reserved
*文件名 digui.c
*作者:封尘之魂
*完毕日期:20141108
*版本V1.0
*问题描写叙述:求两个整数的最大公约数最小公倍数
*输入描写叙述:输入两个整数
*输出描写叙述:成功输出最大公约数最小公倍数
*/
#include<stdio.h>
int main()
{int m,n,q,t,j,k;
scanf("%d%d",&m,&n);
j=m;k=n;if(m<n)//比較大小 
{t=m;
m=n;
n=t;
}
q=m%n;
while(q)//辗转相除法
 {m=n;
n=q;
q=m%n;
}
printf("%d %d",n,j*k/n); 
}





另外一种循环
#include<stdio.h>
int z(int a, int b)
{
return b==0?

a:z(b, a%b);//递归推断 } int main() { int a,b,m; scanf("%d%d",&a,&b); m=z(a,b); printf("%d %d", m,a*b/m); }

心得:一般来说用循环解决的问题都能用递归解决  要多运用递归来解决循环的问题来锻炼自己的思维问题
方法:取代  要熟练的掌握替换之法 把没用过量赋值给用过的量,实现自己想要达到的目标

原文地址:https://www.cnblogs.com/yxwkf/p/5148321.html