解题思路:
辗转相除法求最大公约数:
1.如果B=0,那么A就是最大公约数
2.B!=0,计算A/B的余数,让A==B,而B等于余数
演示:
A=12 B=18 remainder=12
A=18 B=12 remainder=6
A=12 B=6 remainder=0
A=6 B=0 remainder=0
A=6 B=0 over
注意事项:
A*B=GCD*LCM
GCD:最大公约数
LCM:最小公倍数
参考代码:
#include<iostream> using namespace std; int main() { int a,b,r,p; cin>>a>>b; p=a*b; while(b!=0) { r=a%b; a=b; b=r; } int GCD=a; int LCM=p/GCD; cout<<GCD<<endl<<LCM; return 0; }
0.0分
3 人评分
C二级辅导-计负均正 (C语言代码)浏览:508 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:821 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1345 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:535 |
WU-格式化数据输出 (C++代码)浏览:1194 |
用筛法求之N内的素数。 (C++代码)浏览:692 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:561 |
模拟计算器 (C语言代码)浏览:2297 |
图形输出 (C语言代码)浏览:937 |
敲七 (C语言代码)浏览:2699 |