递归和非递归方法实现辗转相除法
来源:互联网 发布:mac电脑flash过期 编辑:程序博客网 时间:2024/06/07 16:44
一、辗转相除法的概念
辗转相除法又名欧里几何法,可以用来求解两个数的最大公约数。它的定义是两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。就是说13和10的最大公约数等于3和10的最大公约数。
本文主要讨论递归和非递归方法实现辗转相除法。
二、递归解决方法
int gcd(int x,int y){return (!y)?x:gcd(y,x%y);}
输入两个参数x>y,可以求得最终结果。
三、非递归解决方法
int gcd(int x,int y){int a=0; while(y){ a=x%y; x=y; y=a; } return x;}
四、总结
辗转相除法的关键在于要读懂该算法的含义,只有真正读懂含义,才能不变应万变。
阅读全文
0 0
- 递归和非递归方法实现辗转相除法
- 递归和非递归的辗转相除法
- c++ 辗转相除法 递归非递归
- 递归实现最大公约数:辗转相除法
- 求最小公约数(辗转相除法<递归和非递归求法>)
- 辗转相除法求两数的最大公约数(递归实现)
- 简单递归—求最大公约数(辗转相除法)
- Xcode-c语言初接触-辗转相除法(递归)
- java笔记→递归算法、枚举法、辗转相除法
- 归并排序(递归和非递归方法实现)
- 归并排序数组实现之递归和非递归方法
- 归并排序的递归和非递归实现方法
- 复习篇 -- 递归和非递归方法实现N!
- 快速排序的递归和非递归实现方法
- 递归和非递归方法实现斐波那契
- 汉诺塔递归方法和非递归方法
- 递归方法的非递归实现
- 递归方法的非递归实现
- caioj1064·动态规划入门(一维一边推2:最长上升子序列)
- 程序员技术晋升非正式攻略
- bootstrap环境搭建两种方法之一
- java学习——java基础(十二)之内存泄漏、内存溢出及JVM内存调优
- Hibernate 缓存机制。
- 递归和非递归方法实现辗转相除法
- 基于CAS的单点登录SSO[3]: 改造cas-overlays-template支持Redis存储Ticket
- LeetCode【1】-Two Sum JAVA
- immutable日常操作之深入API
- 百度地图
- 一个activity中调用另一个activity的界面
- XTUOJ 程序设计实践II-2017(部分)
- Vim下Ctrl+S卡死?
- 【源码剖析】Webbench —— 简洁而优美的压力测试工具