《C和指针》第7章第2道编程题:
两个整型值M和N(M、N均大于0)的最大公约数可以按照下面的方法计算:
请编写一个名叫gcd的函数,它接受两个整型参数,并返回这两个数的最大公约数。如果这两个参数中的任何一个不大于零,函数返回零。
1 /* 2 ** 求两个整数的最大公约数 3 */ 4 5 #include <stdio.h> 6 7 int gcd( int M, int N ); 8 9 int 10 main() 11 { 12 int m, n; 13 scanf( "%d%d", &m, &n ); 14 printf( "%d", gcd( m, n ) ); 15 return 0; 16 } 17 18 /* 19 ** 求两个整数的最大公约数 20 ** 如果两个参数中任一个数不大于0,函数返回0 21 */ 22 int 23 gcd( int M, int N ) 24 { 25 int R, t; 26 27 /* 28 ** 如果M,N任一个数不大于0,函数返回0 29 */ 30 if( M <= 0 || N <= 0 ) 31 return 0; 32 33 /* 34 ** 保证M>=N 35 */ 36 if( M < N ) 37 { 38 t = M; 39 M = N; 40 N = t; 41 } 42 43 /* 44 ** 求最大公约数 45 */ 46 while( ( R = M % N ) > 0 ) 47 { 48 M = N; 49 N = R; 50 } 51 52 return N; 53 }
时间: 2024-10-29 19:07:39