解题思路:辗转相除法解决最大公约数(x)问题,最小公倍数为a*b/x;
注意事项:要理解 辗转相除法 是怎么用的,这个很重要,然后要注意每次进行除法运算的数是在改变的,注意观察余数的情况
参考代码:
#include<stdio.h> int main() { int a,b,i,j,min,max;//j最小公倍数 ,i是辗转相除时产生的余数 scanf("%d %d",&a,&b);//注意这里的空格问题 max=(a>b?a:b);//找到大的数作为被除数 min=(a<b?a:b); while(1) { i=max%min;//取余运算 if(i==0) break;//当余数为0的时候,被除数就是最大公约数,此时跳出循环即可 max=min;//这里是在改变被除数的值 min=i;//这里是在改变除数的值 } j=a*b/min;//最小公约数的计算,理解怎么算的就可以了 printf("%d %d",min,j); return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:600 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:651 |
【计算球体积】 (C语言代码)浏览:985 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
简单的a+b (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:585 |
【蟠桃记】 (C语言代码)浏览:1034 |
The 3n + 1 problem (C语言代码)浏览:553 |
C语言训练-自由落体问题 (C语言代码)浏览:615 |