题目:求a和b的最大公约数
分析:首先我们要知道最大公约数是什么,就是指两个或多个整数共有约数中最大的一个。好了,知道了最大公约数是什么,就可以求解它了,那么就相当于比较俩个数的约数,取其相等的最大的一个就对了,是吧?约数是啥???约数就是能把a或者b整除的数呗~
好了~一起来看看代码吧~
代码:
#include<stdio.h>
void gcd(long int a,long int b) //子函数求gcd
{
long int i,t=,j=,k=,max,q=;
long int x[],y[]; //x[]存放第一个数的除数,y[]存放第二个数被第一个除数整除的数
for(i=a;i>;i--) //x[]
{
if(a%i==)
x[j++]=i;
t++;
}
for(i=;i<t;i++) //y[]
{
if(b%x[i]==)
y[k++]=x[i];
q++;
}
max=y[]; //选择最大的一个
for(i=;i<q;i++)
{
if(max<y[i])
{
max=y[i];
}
}
printf("gcd=%ld\n",max); //输出
}
void main()
{
long int a,b;
long int x[],y[];
while()
{
printf("please enter two number between 0 to 255 \n"); //输入俩个数
scanf("%ld%ld",&a,&b);
gcd(a,b);
}
}
简单的看几个答案吧:
是不是很容易呢?
欢迎联系我的qq:2516985331
一起学习~