求最大公约数的两种方法
2016-07-29 07:26
218 查看
辗转相除+递归 #include<stdio.h> int gcd(int a, int b) { printf("%d\n", b); //打印中间数 return a%b ? gcd(b, a%b) : b; } int main() { int a, b; scanf("%d%d", &a, &b); gcd(a, b); return 0; } 更相减损+递归 #include<stdio.h> int gcd(int a, int b) { printf("%d\n", b); //打印中间数 return a>b ? a-b?gcd(b,a-b):b : b-a?gcd(a,b-a):a; } int main() { int a, b; scanf("%d%d", &a, &b); gcd(a, b); return 0; } 欧几里得算法+迭代 #include<stdio.h> int gcd(int a, int b) { int i; while(b) { i=a%b; a=b; b=i; printf("%d\n", a); //打印中间数 } return a; } int main() { int a, b; scanf("%d%d", &a, &b); gcd(a, b); return 0; } 似乎只有在输入相同数字或相邻斐波那契数时,辗转相除和更相减损两种方法进行同样多的操作。亦即最坏情况。
取模运算效率不高,得改改了;
待更
相关文章推荐
- c 语言 求最大公约数 最小公倍数 两种方法:
- 求最大公约数的两种方法
- 求最大公约数两种方法
- 两种方法求最大公约数和最小公倍数
- 两种方法求两个数的最大公约数和最小公倍数--C语言
- 探究如何求两数的最大公约数(两种方法)
- 求最大公约数的两种方法
- 两种方法求最大公约数和最小公倍数
- 两种方法求最大公约数最小公倍数
- java求最大公约数的两种方法
- 求两个数的最大公约数两种方法
- 两种方法求最大公约数
- 求最大公约数两种方法
- 两种方法求最大公约数最小公倍数
- 求a,b两数的最大公约数的两种方法
- 值交换的两种方法及其效率分析
- 关于服务器端数据访问(2)两种方法访问基于 SQL 的数据 :
- DotNet开发中关于SQLServer连接的两种方法之比较
- .net调用别人的http页面,返回结果,url中有中文的处理,get和post两种方法
- 网页中文本复制的两种方法