用递归的方法求两个数的最大公约数
2016-04-11 20:03
316 查看
两个整型值M,N(M和N均大于零)的最大公约数可以按照下列方法计算:
当M%N=0时,gcd(M,N)=N;
当M%N=R,R>0时gcd(M,N)=gcd(N,R);
代码如下:
当M%N=0时,gcd(M,N)=N;
当M%N=R,R>0时gcd(M,N)=gcd(N,R);
代码如下:
#include<stdio.h> int gcd(int m, int n) { int r = 0; r = m%n; if (r<0) return 0; else if (r == 0) return n; else if (r>0) return gcd(n, r); } int main() { int N = 0; int M = 0; int gc = 0; scanf("%d%d", &N, &M); gc = gcd(M, N); printf("%d\n", gc); system("pause"); return 0; }
相关文章推荐
- 将一个数的二进制位模式从左到右翻转并输出
- 在一个字符串中提取子字符串
- C语言实现小游戏(三) 3*3棋盘游戏
- 用函数调用的方法输出乘法口诀表
- 打印杨辉三角
- 二分查找
- 【UFLDL-exercise7-stacked autoencoder for digit classification】
- 自定义圆图片
- (Array)27. Remove Element
- 由最小生成树算法改到最短路径算法代码----为了区分两者的区别
- 趣味计算:加油站加油
- 利用union类型测试机器是大端还是小端(Big_endian or Little_endian)
- C语言实现小游戏(二)
- 检查机器是大端字节序还是小端字节序
- a+aa+aaa+aaaa+aaaaa
- 模拟密码登录
- C语言实现小游戏(一)
- 可以一直接收键盘字符,并将大写转为小写,小写转为大写,数字不作处理
- 输出一个数的二进制数的奇数序列和偶数序列(三种方法)
- 将十进制转换为二进制和十六进制