解题思路:
辗转相除法求最大公约数:
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语言代码)浏览:495 |
Pascal三角 (C语言代码)浏览:1188 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
C语言训练-求函数值 (C语言代码)浏览:580 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:549 |
【金明的预算方案】 (C++代码)浏览:843 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:711 |
简单的a+b (C语言代码)浏览:606 |
DNA (C语言描述,蓝桥杯)浏览:1555 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:549 |