XYNUOJ 1106 1107 求最大公约数 求最小公倍数

来源:互联网 发布:罗技m558 mac驱动下载 编辑:程序博客网 时间:2024/06/03 21:44

1106: 习题7-1.1 求最大公约数

时间限制: 1 Sec  内存限制: 12 MB
提交: 63  解决: 60
[提交][状态][讨论版]

题目描述

写一个函数,求两个整数的最大公约数。通过主函数调用这个函数,并输出结果。

两个整数通过键盘输入。

输入

空格分隔的2个整数

输出

输入两数的最大公约数,单独占一行。

样例输入

8 12

样例输出

4

提示

C语言第四版教学实验-第七章 函数

#include<stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);if(a<b)//找出两个数中较小的数 {for(int i=a;i>=2;i--)//从大到小找节省时间 if(a%i==0&&b%i==0)return printf("%d\n",i);  //直接return输出最大值,剩下的不会输出 }}
另一种调用函数,没有直接求好理解

#include<stdio.h>//调用函数  int main() {  int hcf(int,int);//声明一下  int u,v,h; scanf("%d %d",&u,&v); h=hcf(u,v);//h为这个函数的返回值  printf("%d",h); return 0; } int hcf(int u,int v) { int t,r; if(v>u) { t=u;u=v;v=t;//将小数给 v  } while((r=u%v)!=0) { u=v;//一直取余直到r==0  v=r; } return(v); }

1107: 习题7-1.2 求最小公倍数

时间限制: 1 Sec  内存限制: 12 MB
提交: 71  解决: 58
[提交][状态][讨论版]

题目描述

写一个函数求两个整数的最小公倍数,通过主函数调用这个函数,并输出结果。

两个整数由键盘输入。

输入

以空格分隔的两个整数

输出

输入两数的最小公倍数,单独占一行。

样例输入

8 12

样例输出

24

提示

C语言第四版教学实验-第七章 函数

#include<stdio.h>int main(){int a,b,i;scanf("%d %d",&a,&b);if(a<b){for(i=a;i>=2;i--)if(a%i==0&&b%i==0)return printf("%d\n",a*b/i); //直接return输出小公倍数,剩下的不会输出 很好用 }}



#include<stdio.h> int main() {  int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf("%d %d",&u,&v); h=hcf(u,v); l=lcd(u,v,h); printf("%d",l); return 0; } int hcf(int u,int v) { int t,r; if(v>u) { t=u;u=v;v=t; } while((r=u%v)!=0) { u=v; v=r; } return(v); } int lcd(int u,int v,int h)//在上一个函数基础上加了一个语句  { return(u*v/h); }