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);
}