解题思路:
辗转相除法求最大公约数:
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语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1242 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:691 |
校门外的树 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:567 |
a+b浏览:432 |
核桃的数量 (C语言代码)浏览:668 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:606 |
Tom数 (C语言代码)浏览:492 |
简单的a+b (C语言代码)浏览:944 |
DNA (C语言代码)浏览:735 |