题目:求两个数的最大公约数。使用辗转相除法。
编程思路分析:
- 两个数设两个变量a,b。
- 使用辗转相除法运算。
- 求出最大公约数并输出。
重点运算思路:
- 辗转相除法:若b = 0,则直接得到a的最大公约数。否则计算a%b得到余数,存入一个变量x中,让a = b,b = x。并以此为基础循环。
- 设我们要求的a和b分别是8和14。首先b != 0,到第二步, →
x = a%b = 8,a = b =14,b = x = 8;
x = a%b = 6,a = b = 8,b = x = 6;
x = a%b = 2,a = b = 6,b = x = 2;
x = a%b = 0,a = b = 2,b = x = 0;
b = 0 →循环结束。 - 得到a为最大公约数2。
实现代码如下:
#include <stdio.h>
//求最大公约数a, b
int main(){
int a = 0;
int b = 0;
int x = 0;
scanf("%d", &a);
scanf("%d", &b);
while(b != 0){
x = a%b;
a = b;
b = x;
}
printf("最大公约数是 = %d", a);
return 0;
}