python求一个整数的最大公约数_算法交流:7592 求最大公约数问题【2.1基本算法之递归和自调用函数】...

2023-11-15

【题目描述】7592 求最大公约数问题 By OIer15WA
给定两个正整数,求它们的最大公约数。
输入
输入一行,包含两个正整数(<1000000000)
输出
输出一个正整数,即这两个正整数的最大公约数。【样例输入】

6 9

【样例输出】

3

一、题意分析
求两个正整数的最大公约数,即所求的数为两个正整数中最大的公共因数。二、算法说明
第一种方法:用一个for循环,将i从两个数中最小的数开始循环到1.当这两个数第一次同时被整除时,输出i。这时i即最大公因数。
第二种方法:用递归思想,利用辗转相除法。假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。用一个函数来实现这个功能。三、数据结构
四、算法分析
刚开始用的第一种方法,思想比较简单,用for循环来求公约数。代码也比较好打。但是提交过后运行时间却比较长。
后来看到题目提示的辗转相除法,就想到用递归就比较容易实现。但是递归函数却要认真思考该怎么打。刚开始提交显示错误。后来将两个语句调换了一下顺序就accepted了。运行时间非常少。五、代码与调试
非递归:
#include<stdio.h>
int main()
{
long long int a,b,i,t;
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
for(i=b;i>=1;i--)
{
if(a%i==0&&b%i==0)
break;
}
printf("%d",i);
return 0;}

递归:
#include<stdio.h>
int f(long long int a,long long int b)
{
if(a%b==0)
return(b);
return(f(b,a%b));
}
int main()
{
long long int a,b,t;
scanf("%d%d",&a,&b);
if(a<b)
{ t=a;
a=b;
b=t;
}
b=f(a,b);
printf("%d",b);
}
递归:
刚开始提交显示错误。后来将两个语句调换了一下顺序就accepted了。运行时间非常少。
if(a%b==0)
return(b);
f(b,a%b);
改为:
if(a%b==0)
return(b);
return(f(b,a%b));

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python求一个整数的最大公约数_算法交流:7592 求最大公约数问题【2.1基本算法之递归和自调用函数】... 的相关文章

  • 如何像 youtube 一样在纸板中观看普通视频

    我有一个可以正常播放的应用程序VR视频 我的应用程序有两个玩家可以玩这两种类型 在我的VrVideoView有一个按钮可以让视频播放立体声模式 我的问题是 我怎样才能观看正常的视频Cardboard就像YouTube app None
  • Hibernate Envers:如何捕获谁删除了审计表中的实体

    我在用hibernate envers with spring 一切工作正常 除了当我删除一个实体时 它不会改变的值updated by and updated date在审计表内 它会在之后保存一个与之前完全相同的实体 仅复制 sprin
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 内容是从 WiFi 直接传输到 Chromecast,还是从 WiFi 传输到 Android 再传输到 Chromecast?

    内容是从 WiFi 直接传输到 Chromecast 还是从 WiFi 传输到 Android 或任何其他设备 再传输到 Chromecast 我知道其他设备可用于控制 Chromecast 但我只想知道由于电池寿命的原因 您是否可以直接从
  • 真实值与预测值的降维可视化

    我有一个数据框 如下所示 label predicted F1 F2 F3 F40 major minor 2 1 4 major major 1 0 10 minor patch 4 3 23 major patch 2 1 11 min
  • 在magento Attributes中添加自定义属性并显示在前端

    我已经开始使用 magento 作为我的电子商务 cms 我知道这是一个非常强大的平台 最近 我发现它的功能可以帮助开发人员扩展核心 并且我已经成功添加了自定义类别选项 是否有机会在某个属性上达到相同的结果 我想在属性选项卡上添加文本描述并
  • 如何将 Terraform 状态从一个远程存储移动到另一个远程存储

    我们使用 Azure blob 存储作为 Terraform 远程状态 并且我尝试将有关特定现有资源的状态信息移动到该存储帐户中的不同容器 新容器 terraforminfra v2 已存在 现有 Terraform 代码指向旧容器 ter
  • html5 canvas 使用图像作为蒙版

    是否可以使用具有形状的图像作为整个画布或画布内图像的蒙版 我想将图像放置在画布中 并在图像上添加蒙版 然后将其另存为新图像 您可以使用 source in globalCompositeOperation 将黑白图像用作蒙版 首先 将蒙版图
  • 解析用户周围的位置

    您好 我开发了一个应用程序 我想问一个问题 在我的数据云解析中 我有 餐馆 类 我有三列 名称 类型字符串 imageFile 类型文件 description 类型数组和 Location 类型GeoPoint 我想知道使用哪种方法来获取
  • 重定向到其他控制器中的操作

    我想从一个控制器中的操作重定向到第二个控制器中的操作 通常我会使用 RedirectToAction actionName controllerName objects 我想要重定向到的方法有两个重载 一个用于 HttpVerbs Get
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • 如何将 Hibernate 5 安装到 Apache Karaf v4 中

    我已经安装了 Apache Karaf v4 03 并查询了 Hibernate 的可用功能列表 如下所示 不幸的是 我使用的是 Hibernate v5 hibernate 3 3 2 GA Uninstalled enterprise
  • 是否有与 pdl2(或 Devel::REPL)中的 perl 调试器“x”等效的东西?

    我在用pdl2 the PDL http p3rl org PDLshell 也作为我的默认 Perl 交互式 shell 它加载所有不错的插件Devel REPL http search cpan org perldoc Devel 3a
  • 从 C/C++ 程序进行 Ping

    我想编写一个 C 或 C 程序 给定一个 IP 地址 对其进行 Ping 然后根据 Ping 是否成功执行进一步的操作 这个怎么做 尽情享受Ping 页面 http www ping127001 com pingpage htm 其中有一个
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • simple_fields_for 没有出现 [rails 4]

    我正在尝试创建两个隐藏字段 其中一个显示没有问题 但来自嵌套表单的另一个则没有 产品 rb class Product lt ActiveRecord Base has many product options dependent dest
  • jsf文件下载不起作用

    当我点击h commandButton它执行myBean dowanlod 方法 但它不下载任何文件 这是我在支持 bean 中的方法 没有例外 光标变得忙碌 似乎在等待响应 对于这种操作是否有任何额外的配置或者这段代码有什么问题吗
  • 将文件传递给活动作业/后台作业

    我通过标准文件输入接收请求参数中的文件 def create file params file upload Upload create file file filename img png end 但是 对于大型上传 我想在后台作业中执行
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐

  • 持续集成是什么?

    作者 阮一峰 日期 2015年9月23日 互联网软件的开发和发布 已经形成了一套标准流程 最重要的组成部分就是持续集成 Continuous integration 简称CI 本文简要介绍持续集成的概念和做法 一 概念 持续集成指的是 频繁
  • MyBatis流式查询

    MyBatis流式查询 1 应用场景说明 MyBatis preview JDBC三种读取方式 1 一次全部 默认 一次获取全部 2 流式 多次获取 一次一行 3 游标 多次获取 一次多行 在开发中我们经常需要会遇到统计数据 将数据导出到e
  • tomcat报错 Unable to process Jar entry

    错误描述 tomcat启动报下边的这个错 错误现象 09 Jul 2019 13 34 14 635 严重 RMI TCP Connection 3 127 0 0 1 org apache catalina startup Context
  • ORA-14402: 更新分区关键字列将导致分区的更改

    默认情况下 oracle的分区表对于分区字段是不允许进行update操作的 如果有对分区字段行进update 就会报错 ORA 14402 更新分区关键字列将导致分区的更改 但是可以通过打开表的row movement属性来允许对分区字段的
  • [JAVAee]Spring项目的创建与基本使用

    目录 Spring项目的创建 Spring中Bean对象的存储与获取 存储Bean对象 获取并使用Bean对象 getBean方法的重载 本文章介绍了Spring项目创建与使用的过程与一定的注意事项 Spring项目的创建 首先在IDEA中
  • 以太坊 Truffle实战

    目录 搭建私连网络 truflle初始化项目 智能合约示例 通用存证合约 初始化参数 接口 简易审批合约 初始化参数 数据结构 接口 智能合约的建立 谁在与智能合约交互 智能合约的销毁 整个过程主要演示chrome扩展 METAMASK O
  • 电源层和地线层完整性规则_电路设计规则

    电路图设计规则 一 电路设计流程 1 根据需求文件开始进行原理图设计 2 选择设计所需元器件 加载所需元件库 如果现有元件库没有所需元件 需自己制作 新制作的元器件要求功能形象化 标示准确化 选择合适的电路用于自己的设计完成相应的功能 确定
  • Unable to install breakpoint in XXX due to missing line number attributes.

    今天调试程序的时候 eclipse 弹出来一个 Unable to install breakpointdue to missingline number attributes Modify compileroptions togenera
  • 01.神经网络和深度学习——week2 神经网络基础(编程作业)

    Part 1 Python Basics with Numpy optional 1 Building basic functions with numpy 1 1 Sigmoid function np exp exe Build a f
  • Unity游戏开发客户端面经——C#(初级)

    前言 记录了总6w字的面经知识点 文章中的知识点若想深入了解 可以点击链接学习 由于文本太多 按类型分开 这一篇是C 常问问题总结 有帮助的可以收藏 1 引用类型 值类型 1 1 介绍 值类型 int bool float char str
  • 持续集成管理软件Jenkins应用实验

    编写Dockerfile文件 1 创建一个目录jenkins 保存相关的配置信息和内容 在 后输入mkdir Jenkins cd Jenkins命令 然后按Enter键 创建Jenkins目录并进入该目录 示例代码如下 root xian
  • UML建模与软件开发设计(七)——时序图设计

    在前面我们学习了类图相关知识 类图是一种静态结构模型视图 它是设计类及类间关系 即数据结构 的重要依据 但它无法刻画类的对象间的交互 通信行为 也就是说 类图无法描述类和类之间是如何通信 交互的 通俗地说 类图无法描述某个类的方法被哪个类所
  • OnTriggerEnter

    准备一个脚本 shiyan cs 脚本内容如下 脚本挂在小球上 然后运行场景 拖动小球撞盒子 然后再拖动盒子撞小球 分别看控制台打印结果 然后将脚本挂在盒子上 然后运行场景 拖动小球撞盒子 然后再拖动盒子撞小球 分别看控制台打印结果 OnT
  • 写一个Java程序,在程序中建立一个窗口

    编写一个Java程序 在程序中建立一个窗口 有四个文本框 两个按钮 单击 求和 按钮 能把第一个和第二个文本框的整数相加后结果显示在第三个文本框中 点击 复制 按钮 能将第三个文本框的内容复制到第四个文本框中 最后还可以正常关闭窗口 要创建
  • 后台管理系统----品牌管理

    目录 路由的搭建 品牌管理静态组件 品牌管理列表展示 element ui table表单组件 element ui el pagination分页器组件 插槽 网络请求 增删改牌静态页面 增删改品牌功能 书写api 增删改逻辑 表单校验
  • supervisor系列:4、子进程

    supervisor系列 4 子进程 文章目录 supervisor系列 4 子进程 1 非后台运行的子进程 1 1 程序配置示例 1 1 1 Apache 2 2 6 1 1 2 Two Zope 2 X instances and on
  • Windows命令行创建文件,文件夹,删除文件,文件夹命令

    创建文件夹命令 md 文件夹名字或者mkdir 文件夹名字 删除文件夹命令 rd删除空文件夹 rd s q 删除有子文件夹和子文件的文件夹 创建文件命令 type nul gt 可以带文件名 也可以不带文件名 这里用于空文件 echo 文件
  • mysql 常用函数

    一 mysql的函数 1 1 limit分页函数的使用 第一个起始的个数从0开始 第二个查询的个数 SELECT FROM student LIMIT 4 5 SELECT FROM student LIMIT 5 1 2 聚合函数 AVG
  • 【Linux】如何在进程间加锁(实现互斥)

    文章目录 前言 mmap 配合 pthread mutex t 先让多个进程能够看到一个num 多个进程互斥访问 具体代码 采用共享内存配合信号量 semget semctl semop 核心逻辑 管道 总结 前言 Linux 初识进程间通
  • python求一个整数的最大公约数_算法交流:7592 求最大公约数问题【2.1基本算法之递归和自调用函数】...

    题目描述 7592 求最大公约数问题 By OIer15WA给定两个正整数 求它们的最大公约数 输入输入一行 包含两个正整数 lt 1000000000 输出输出一个正整数 即这两个正整数的最大公约数 样例输入 6 9 样例输出 3 一 题