C语言初学习(4)

题目:求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

一起学习~

相关推荐