关于c的gsd函数
如何用gsd 函数耗时最少的求最大公约数和最小公倍数??耗时需在1000ms内 int gcd(int x, int y) // 最大公因数
{
if(y == 0) return x;
return gcd(y, x%y);
}
int gbd(int x, int y) // 最小公倍数
{
return x*y/gcd(x, y);
} 本帖最后由 jackz007 于 2022-9-23 21:35 编辑
看看这个代码是否可以过关
#include <stdio.h>
int gcd(int a , int b)
{
for(int c ; b ; c = a % b , a = b , b = c) ;
return a ;
}
int main(void)
{
int a , b , c , d ;
scanf("%d%d" , & a , & b) ;
c = gcd(a , b) ;
d = a * b / c ;
printf("%d %d\n" , c , d) ;
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
24 36
12 72
D:\\C> tommyyu 发表于 2022-9-23 21:16
感谢 jackz007 发表于 2022-9-23 21:30
看看这个代码是否可以过关
编译、运行实况:
感谢感谢
for(int c ; b ; c = a % b , a = b , b = c) ;
小白求教这句什么意思
页:
[1]