辗转相除法求最大公约数 递归代码和运行结果如下:可见正确输出了12和18的最大公约数6 附源码:include <stdio.h> int f(int a, int b) { if (b == 0)return a;else return f(b, a % b);} int main() { int a, b;scanf("%d%d", &a, &b);printf("%d\n", f(a, b))...
int yueshu(int m,int n){ int t;if(m>n)t=m,m=n,n=t; //替换,保证m为较大的数 while(n!=0){ t=m%n;m=n;n=t;} return m;} int beishu(int m,int n){ return m*n/yueshu(m,n); //最小公倍数即为两个数的乘积除以最大公约数 } main(){ int m,n,s,t...
printf("两个数字的最大公约数为%d\n",n);getch();} 这个算法就是把你初中算最大公约数的过程给程序化了。。你用以前的方法在纸上算算最大公约数 再对照WHILE里面的算法 就能明白咋回事了。。
直接编写两个函数就行了!!include int yueshu(int m,int n){ int t;if(m>n)t=m,m=n,n=t;//替换,保证m为较大的数 while(n!=0){ t=m%n;m=n;n=t;} return m;} int beishu(int m,int n){ return m*n/yueshu(m,n);//最小公倍数即为两个数的乘积除以最大公约数 }...