题目描述:

输入两个自然数a、b(a,b均在int范围内),用递归算法求a与b的最大公约数。

输入格式:

一行a与b,两数以一个空格隔开。

输出格式:

一个最大公约数。

样例输入:

20 15

样例输出:

5

提示:

求最大公约数可以使用辗转相除法:
假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。
由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。
比如:
9和6的最大公约数等于6和9%6=3的最大公约数。
由于6%3==0,所以最大公约数为3。

时间限制: 1000ms
空间限制: 128MB

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){long long a,b,r,a1,b1;cin>>a>>b;while(1){r=a%b;if(r==0){cout<<b;return 0;}a=b;b=r;}return 0;
}

优化版代码:

#include<cstdio>
#define ll long long
ll fun(ll x,ll y){while(1){if(x%y==0){return y;}return fun(y,x%y);}
}
int main(){ll a,b,r,a1,b1;scanf("%d %d",&a,&b);printf("%d",fun(a,b));
}

用递归法求最大公约数(递归)相关推荐

  1. PTA——递归法求最大公约数

    个人名片: 博主:酒徒ᝰ. 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 专栏:PTA习题及解析 介绍:记录了博主在pta学习练题的一些方法与笔记. 目录 前言 1.简介 2.优点 一.题目 ...

  2. 使用递归法求最大公约数

    int zuixiaogongyueshu(int a, int b) {if (a % b == 0) {return b;}else {return zuixiaogongyueshu(b, a ...

  3. 最小公倍数递归c语言,递归法求最大公约数和最小公倍数的实现代码

    #include using namespace std; int gcd(int a, int b);//声明最大公约数函数 int main() { int num1 = 1; int num2 ...

  4. 用递归法求两个数的最大公约数

    用递归法求两个数的最大公约数 求两个数的最大公约数的思路是,用辗转现除法 辗转相除法求两个数的最大公约数的步骤如下: 先用小的一个数除大的一个数,得第一个余数: 再用第一个余数除小的一个数,得第二个余 ...

  5. 三目运算法求一个大值,以及指定位数的应用,以及函数的声明,以及函数的嵌套,以及函数的递归,以及用递归法求阶乘

    1.三目运算法 首先一般方法比较两个数的大小 用空格和回车都一样 当结果非x即y的时候 我们可以用三目运算法 z=x>y?x:y 如果表达式成立取前面的值,如果表达式不成立取后面的值 也可以改成 ...

  6. 信息竞赛进阶指南--递归法求中缀表达式的值,O(n^2)(模板)

    // 递归法求中缀表达式的值,O(n^2) int calc(int l, int r) {// 寻找未被任何括号包含的最后一个加减号for (int i = r, j = 0; i >= l; ...

  7. C语言编程用递归法求

    7,用递归法求: (x2!)+(xxx3!)+(5个x相乘5!)+-+((2n-2)个x相乘(2n-2)!)当N为某值是上式为几?(到第n项,n和x的值有键盘输入.) #include<stdi ...

  8. C语言递归算法求斐波那契,递归法求斐波那契数列(C语言版)

    斐波那契数列: 又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 在数学上,斐波纳契数列以如下被以递归的方法定义 ...

  9. 用欧几里得算法求最大公约数_欧几里得算法:GCD(最大公约数),用C ++和Java示例解释...

    用欧几里得算法求最大公约数 For this topic you must know about Greatest Common Divisor (GCD) and the MOD operation ...

最新文章

  1. 又出现依赖冲突?试试 IDEA 解决 Maven 依赖冲突的高能神器!
  2. 洛谷 P3332 [ZJOI2013]K大数查询 解题报告
  3. SNMP功能开发简介 四 net-snmp动态监听自定义端口
  4. 【转】光栅化操作阶段
  5. c语言讲输入退回缓冲区_开始之前的结束-如何不退回输入错误的用户电子邮件...
  6. mysql 内部安全性_MySQL数据库的内部以及外部安全性简介
  7. 干了三年的Java,你竟然还不会MySQL性能优化
  8. Ubuntu Linux服务器配置SSH无密码登陆
  9. android电池(五):电池 充电IC(PM2301)驱动分析篇
  10. 原型模式(Prototype)C++实现
  11. [译] 学习 Spring Security(四):使用邮箱激活新账户
  12. EVE上传Dynamips、IOL镜像
  13. DM运维踩坑实践总结
  14. 中国马铃薯全粉产业经营策略与销售渠道研究报告(2022-2027年)
  15. 如何在eclipse制作的APP中添加背景图
  16. Mars 模拟器编写 mips32 汇编 的入门教程
  17. DFS中的回溯法(纯暴力穷举)
  18. 电竞英雄联盟数据API接口 - 【联赛列表】API调用示例代码
  19. 用python发送put请求
  20. 夜半加班之附魔吃药篇!

热门文章

  1. 二代身份证与社会保障卡照片要求
  2. HDFS 双缓冲技术核心源码剖析
  3. python stringvar函数_python-Tkinter StringVar错误
  4. ROS机器人底盘坐标像素变换
  5. mysql运行时间函数_mysql 时间函数
  6. python能打开的txt文件编码_Python读写txt文件时的编码问题
  7. 浅谈人工智能下智慧交通的深入应用
  8. 轴承的摩擦与润滑 中英文翻译
  9. Cesium-GeoServer发布WMTS服务与加载
  10. OJ.2316: 排序【数组】