写两个函数,分别求最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

个人比较喜欢用辗转相除法求最大公约数

算法如下

if v>u

将变量u与v的值互换(使较大者u为被除数)

while(u/v的余数r≠0)

{u=v;  (使除数v变为被除数u)

 v=r; (使余数r变为除数v)

}

输出最大公约数r

最小公倍数l=u*v/最大公约数r

 1 #include <stdio.h>
 2 int Hcf,Lcd;  //Hcf和Lcd是全局变量
 3 
 4 int main()
 5 {
 6     void hcf(int,int);
 7     void lcd(int,int);
 8     int u,v;
 9     scanf("%d,%d",&u,&v);
10     hcf(u,v);  //调用hcf函数
11     lcd(u,v);  //调用lcd函数
12     printf("H.C.F = %d\n",Hcf);
13     printf("L.C.D = %d\n",Lcd);
14     return 0;
15 }
16 
17 void hcf(int u,int v)
18 {
19     int t,r;
20     if(v>u) {t=u;u=v;v=t;}
21 
22     while((r=u%v)!=0)
23     {
24         u=v;
25         v=r;
26     }
27     Hcf=v;
28 }
29 
30 void lcd(int u,int v)
31 {
32     Lcd=u*v/Hcf;
33 }

 

写两个函数,分别求最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

上一篇:SSM框架整合(三)修改和删除功能


下一篇:字符串轮转-字符串