#include <stdio.h>
typedef int BOOL;
#define true 1
#define false 0
BOOL isEven(int x)//判断是否为偶数
{
if(x%2 == 0)
return true;
else
return false;
}
int gcd_mix(int x, int y)//求两个数的最大公约数
{
if(x < y)
return gcd_mix(y , x);
if(y == 0)
return x;
else
if(isEven(x))
{
if(isEven(y))
return 2*gcd_mix(x>>1,y>>1);
else
return gcd_mix(x>>1,y);
}
else
{
if(isEven(y))
return gcd_mix(x,y>>1);
else
return gcd_mix(y,x-y);
}
}
int main()
{
int l,w,h;
while(scanf("%d %d %d",&l,&w,&h),l,w,h)//输入3个不为0的正整数
{
printf("lwh 最大公约数为:%d \n",gcd_mix(gcd_mix(l,w),h));
}
return 0;
}
求三个数最大公约数算法
原文作者:烛天大人
原文地址: https://blog.csdn.net/m0_52317996/article/details/123503263
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/m0_52317996/article/details/123503263
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。