方法一:
思路:找出两个整数之中的较小值,两个整数同时除以这个较小值,并依次减小这个被除数(每次减小为1),直到余数为0.
//找出较小值并赋给m
int a = 0, b = 0;
scanf("%d %d",&a,&b);
//找出较小值方法一:
int m = (a>b ? b : a);
//找出较小值方法二:
if (a < b)
{
int tmp = 0;
a == b;
b == tmp;
}
int m = 0;
m = b;
//找出较小值方法三:
int a = 0, b = 0;
int m = 0;//提前给m初始化
scanf("%d %d",&a,&b);
if(a>b)
{
m = b;
}
if(a<b)
{
m = a;
}
//给定两个数,求这两个数的最大公约数
#include <stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d %d",&a,&b);
//找出较小值
int m = (a>b ? b : a);
while (1)//循环
{
if (a % m == 0 && b % m == 0)//判断
{
break;//跳出循环
}
m--;
}
//输出
printf("%d", m);
return 0;
}
方法二:
辗转相除法
#include <stdio.h>
int main()
{
int a = 0, b = 0;
int m = 0;
scanf("%d %d", &a, &b);
while(m = a%b)//m是可修改的值,在=做操作数必须为左值,
{
a = b;
b = m;
}
//输出
printf("%d", b);
return 0;
}