编程爱好者联盟 2017-01-14
题目:求a和b的最大公约数
分析:首先我们要知道最大公约数是什么,就是指两个或多个整数共有约数中最大的一个。好了,知道了最大公约数是什么,就可以求解它了,那么就相当于比较俩个数的约数,取其相等的最大的一个就对了,是吧?约数是啥???约数就是能把a或者b整除的数呗~
好了~一起来看看代码吧~
代码:
1 #include<stdio.h> 2 void gcd(long int a,long int b) //子函数求gcd 3 { 4 long int i,t=0,j=0,k=0,max,q=0; 5 long int x[256],y[256]; //x[]存放第一个数的除数,y[]存放第二个数被第一个除数整除的数 6 for(i=a;i>0;i--) //x[] 7 { 8 if(a%i==0) 9 x[j++]=i; 10 t++; 11 } 12 for(i=0;i<t;i++) //y[] 13 { 14 if(b%x[i]==0) 15 y[k++]=x[i]; 16 q++; 17 } 18 max=y[0]; //选择最大的一个 19 for(i=0;i<q;i++) 20 { 21 if(max<y[i]) 22 { 23 max=y[i]; 24 } 25 } 26 printf("gcd=%ld\n",max); //输出 27 } 28 void main() 29 { 30 long int a,b; 31 long int x[100],y[100]; 32 while(1) 33 { 34 printf("please enter two number between 0 to 255 \n"); //输入俩个数 35 scanf("%ld%ld",&a,&b); 36 gcd(a,b); 37 } 38 }
简单的看几个答案吧:
是不是很容易呢?
欢迎联系我的qq:2516985331
一起学习~