/*编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。
例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4
*/
//辗转相除法,效率高
#include <stdio.h>
int yue(int a,int b)
{
int tmp;
if(b==0)
return a;
while (tmp)
{
tmp=a%b;
a=b;
b=tmp;
}
return a;
}
int main()
{
int x,y;
printf("请输入两个整数: ");
scanf("%d%d",&x,&y);
printf("最大公约数为: %d\n",yue(x,y));
return 0;
}
//常规求法,一旦出现较大的数字,效率将会很低
#include <stdio.h>
int yue(int a,int b)
{
int temp;
int n;
if (a>b)
{
temp=a;
a=b;
b=temp;
}
n=a;
if(a==0)
return b;
else
while(n!=0)
{
if( a%n==0 && b%n==0 )
return n;
n--;
}
}
int main()
{
int x,y;
printf("请输入两个整数: ");
scanf("%d%d",&x,&y);
printf("最大公约数为: %d\n",yue(x,y));
return 0;
}
【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。(辗转相除法和常规求法)
最新推荐文章于 2023-11-08 16:10:56 发布