C语言学习 最大公约数的辗转相除法_求最大公约数c语言辗转相除_吃不尽的lemon的博客-程序员秘密

技术标签: c语言  初学c  公约数  

 

 

基本原理

两个数的最大公约数是指能同时整除它们的最大正整数。

设两数为a、b(a≥b),求a和b最大公约数

  

的步骤如下:

(1)用a除以b(a≥b),得

  

(2)若   则 

(3)若  ,则再用b除以  ,得

  

(4)若,则  

 ,则继续用 除以 ,......,如此下去,直到能整除为止。

其最后一个余数为0的除数即为  的最大公约数。

在gcd函数中我们运用到了递归

递归(recursion):程序调用自身的编程技巧。

  递归满足2个条件:

   1)有跳出反复执行过程的条件(递归出口)

   2)有反复执行的过程(调用自身),每次调用都更接近跳出条件

例如计算阶乘n!
int recursive(int i)
{
    int sum = 0;
    if (0 == i)
        return (1);
    else
        return i * recursive(i-1);
}

 在gcd函数中我们通过反复调用gcd(b,a%b)达到辗转相除的目的。

一点个人见解

单从数学角度分析,我们还得考虑a>=b这个条件,但我们要注意的是c语言中

%取模这个符号运算,如6%9  我们得到的结果是6 ,这样在下一次调用gcd时,我们得到

9%6,相当于完成了if(a<b){

int t;

t=a;

a=b;

b=t;

}
的最大值提前。在实际代码中我们就不需要考虑输入的a,b谁大谁小了;

 

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40427276/article/details/81267650

智能推荐

java解压出来损坏_在Java中解压缩错误_机核的博客-程序员秘密

嗨,我是zip格式的新手,我使用Java的util实现来解压缩文件,但是每当我尝试打开文件时它都会抛出一个ZipException . 我检查文件是否已损坏,但不是因为我可以使用winRar打开它 .所以我继续尝试 appache.commons.vfs 包来做同样的事情,这也导致了失败 .作为最后的尝试,我尝试了7-zip-jbinding库,并且能够读取Zip存档的内容,但我无法提取它 .这是...

差错检测额纠正技术:奇偶校验、检验和方法、循环冗余检测CRC;多路访问协议:信道划分协议、随机接入协议、轮流协议_采用奇偶校验可以发现两个比特的数据错误_Unique-You的博客-程序员秘密

数据链路层:概述与服务链路层主要使用的信道包括:广播信道 : 这种信道采用一对多的广播通信方式,因此过程比较复杂.广播信道上主机众多,我们必须使用专用的共享信道协议来协调这些主机的数据发送点对点信道 : 这种信道使用一对一的点对点通信方式链路层提供的服务链路层协议定义了在链路两端的节点之间交互的分组格式,以及当发送和接受分组时这些节点采取的动作。 链路层协议可能提供的服务包括:服务概述成帧在每个数...

AI智能换脸_ai换脸 csdn_ironceo的博客-程序员秘密

AI智能换脸FaceSwap是一个利用深度学习来识别和交换图片和视频中的人脸的工具.声明FaceSwap 需要有道德的使用者当faceswapping首次开发并发布时,这项技术是开创性的,它是人工智能发展的一大步. 在学术界之外,它也完全被忽略了,因为代码是混乱和零碎的. 它需要对复杂的人工智能技术有一个全面的了解,并花费了大量的努力来解决它. 直到有一个人把它们组合成一个整体。它运行起来,工作起来,就像互联网上出现的新技术一样,它很快就被用来创建不合适的内容...

ELK-sentinl插件_weixin_30675247的博客-程序员秘密

1 Sentinl插件  sentinl是一个免费的kibana监控预警与报告插件,与付费软件X-Pack功能类似,可以实现监控并发报警邮件。  对于Kibana的一些数据我们有时候是想要对某些字段进行持续关注的,这时候通过报警的手段就可以大幅提升对这些信息状态了解的及时性及可靠性。使用sentinl插件就可以帮助我们实现这个功能。1.1 sentinl安装  下载地址...

geoserver 自定义图标_风云雄霸天下的博客-程序员秘密

"1.0" encoding="UTF-8"?>"1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://

利用列表框实现多层查询_"strwhere += $\" and mid in (select mid from rolem_易登软件Access开发的博客-程序员秘密

Hi,手机边亲爱的你还好吗?我是Mary杨,今天给大家来个”硬菜“,给大家分享一个多层查询示例。一般来说在窗体中实现查询功能有两种方式:一种是先加载所有记录,然后通过窗体的筛选器对记录集数据进行筛选来实现查询功能;另一种方式是将窗体的记录源设为SQL语句,动态改变该SQL语句的WHERE条件子句来实现查询。01、创建表现在通过示例程序来对其进行说明,由于此功能是对数据的处理,所以需要基于一个有数据的表,这里我们用如图1、图2所示的“产品”表来做为例程表:(图1)(图2)0

随便推点

QT5.2 无法使用QFtp解决办法_无法打开包括文件qftp_zhenbaozhu1991的博客-程序员秘密

由于QT5对QML的支持有很大的改进,所以打算将原来基于QT4的程序移植到QT5上,在移植用QFtp类写的程序时傻眼了!Qt5 移除了 QFtp API,原因是其实现质量。QNetworkAccessManager 可以用来提供 ftp url 的上传下载操作。由于原来的程序已经跑的很稳定了不想做修改,然后就去想其它办法,结果发现官方说这些 API 将由某一易于迁移的独立形式提供。去g

[BUUCTF]PWN——cmcc_pwnme1(ret2libc)_Angel~Yan的博客-程序员秘密

cmcc_pwnme1附件步骤例行检查,32位程序,没用开启任何保护本地试运行一下,看看大概的情况32位ida载入,检索字符串的时候发现了读出flag的函数这个flag的位置不清楚对不对,按照buu的习性,应该不对main()getfruit(),这边存在栈溢出先试一下那个读出flag的函数,和我想的一样,buu上flag的目录不在那儿因为看到没用开启nx,所以一开始想要使用shellcode,但是碍于没法获得参数v1在栈上的位置,就换用ret2libc的方法了完整ex

Unraid基于Acme与NginxProxyManager申请免费证书且自动更新并配合内网穿透实现Https安全访问_engineerlzk的博客-程序员秘密

标题虽然有点拗口,但确实是很多爱折腾的朋友需要实现的功能,通过我无数次的构思与实验,终于探索出了一条可行路径,当然,如果你本身已经拥备公网ip,则远远没有如此麻烦,可以看看网上的其它文章,但本文对你依然有帮助,只是不需要其中的一些步骤罢了。好了,言归正传,开启折腾实录之旅——大佬勿喷,我只是希望和我一样的小白能够搞清楚而已。 我的配置和打算: 最近中毒组了1台N1机箱的Nas小主机,华擎Z490m-itx/ac主板,qtb0-10900T处理器,16G+8G的DDR4内存...

SpringBoot读取resources目录下的文件_二十一克阳光!的博客-程序员秘密

目录结构使用ClassPathResource类ClassPathResource classPathResource = new ClassPathResource("static/assets/test.txt");InputStream inputStream = classPathResource.getInputStream();这种方法在idea上运行是可以的,打成jar包也是可以的。参考文章...

Ardunio开发实例-BH1745NUC亮度和颜色传感器_视觉&物联智能的博客-程序员秘密

BH1745NUC亮度和颜色传感器BH1745NUC是具有I²C总线接口的数字颜色传感器IC。 该IC感应红,绿和蓝光(RGB)并将其转换为数字值。 高灵敏度,宽动态范围和出色的Ircut特性使该IC最适合获得环境光的照度和色温,用于调节电视,手机和平板电脑的LCD背光。 可以检测非常宽范围的光强度。 (0.005 – 40k lx)1、硬件准备杜邦线若干、数据线一条Arduino UNO R3开发板一块BH1745NUC传感器模块一个接线如下Arduino传感器3.

防SQL注入_晴天的blog的博客-程序员秘密

1.必须认定用户输入的数据都是不安全的用户输入的数据进行过滤处理if (preg_match(&quot;/^\w{8,20}$/&quot;, $_GET['username'], $matches)){ $result = mysqli_query($conn, &quot;SELECT * FROM users WHERE username=$matches[...

推荐文章

热门文章

相关标签