程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 求兩個整數的最大公約數,兩個整數公約數

求兩個整數的最大公約數,兩個整數公約數

編輯:關於C語言

求兩個整數的最大公約數,兩個整數公約數


《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     ** 這部分多余了感謝@garbageMan的指正
36     if( M < N )
37     {    
38         t = M;
39         M = N;
40         N = t;
41     }
42     */
43     
44     /*
45     ** 求最大公約數
46     */
47     while( ( R = M % N ) > 0 )
48     {
49         M = N;
50         N = R;
51     }
52     
53     return N;
54 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved