C语言最大公约数示例教程

 更新时间:2021年11月27日 16:24:44   作者:Pretend..  
这篇文章主要为大家介绍了C语言最大公约数的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

穷举法

(1) i= a ,b中较小的数
(2)若a,b能同时被i整除,则i即为最大公约数,结束
(3)若不能,则 i--,再回去执行(2)

#include<stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	scanf("%d %d", &i, &j);
	int k = i > j ? i : j;//i>j,k=i;i<j,k=j
	while(1)
	{
		if (i%k == 0 && j%k == 0)
		{
			printf("最大公约数为;%d\n", k);
			break;
		}
		k--;
	}
	return 0;
}

 辗转相除法

辗转相除法求两个数的最大公约数的步骤如下:
(1)先用小的一个数除大的一个数,得第一个余数;
(2)再用第一个余数除小的一个数,得第二个余数;
(3)又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数。

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d", &a, &b);
	while (c = a%b)
	{
		a = b;
		b = c;
	}
	printf("%d\n", b);
	return 0;
}

 辗转相减法

两整数a和b:
(1) 若a>b,则a=a-b
(2)若a<b,则b=b-a
(3) 若a=b,则a(或b)即为两数的最大公约数,结束
(4)若a≠b,则再回去执行(1)

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int ret = 0;
	while (1)
	{
		if (a < b)
		{
			int tmp = 0;
			tmp = a;
			a = b;
			b = tmp;
		}
		ret = a - b;
		if (ret == b)//判断
		{
			printf("ret = %d", ret);
			break;
		}
		else//交换
		{
			a = b;
			b = ret;
		}
	}
	return 0;
}

以上就是C语言最大公约数示例详解的详细内容,更多关于C语言最大公约数的资料请关注脚本之家其它相关文章!

相关文章

  • C++可变参数函数的实现方法示例

    C++可变参数函数的实现方法示例

    这篇文章主要给大家介绍了关于C++可变参数函数的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • C语言实现动态扩容的string

    C语言实现动态扩容的string

    最近工作中使用C语言,但又苦于没有高效的字符串实现,字符串的拼接和裁剪都很麻烦,而且每个字符串都需要申请内存,内存的申请和释放也很容易出bug,怎么高效的实现一个不需要处理内存问题并且可以动态扩容进行拼接和裁剪的string呢?本文就来详细讲讲
    2023-04-04
  • VC多线程编程详解

    VC多线程编程详解

    这篇文章主要介绍了VC多线程编程,实例形式详细分析了多线程编程的原理与实现方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • 浅谈2路插入排序算法及其简单实现

    浅谈2路插入排序算法及其简单实现

    这篇文章主要介绍了浅谈2路插入排序算法及其简单实现,虽算不上是常用的排序方法,但在数据库等方面依然有用上的机会,需要的朋友可以参考下
    2015-08-08
  • 实现去除c语言注释的小工具

    实现去除c语言注释的小工具

    这篇文章主要介绍了实现去除c语言注释的小工具,说是C语言,但其实所有C语系的都可以,比如Java,需要的朋友可以参考下
    2014-02-02
  • 如何在C++类的外部调用类的私有方法

    如何在C++类的外部调用类的私有方法

    这篇文章主要介绍了如何在C++类的外部调用类的私有方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • Visual Studio 2022 激活码(亲测可用)

    Visual Studio 2022 激活码(亲测可用)

    在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 64 位、.NET 6 的支持,为核心调试器提供更好的性能。本文给大家分享Visual Studio 2022 激活码,需要的朋友参考下吧
    2021-12-12
  • C语言实现获取文件MD5值

    C语言实现获取文件MD5值

    MD5(Message Digest Algorithm 5)是一种常用的哈希函数算法,这篇文章主要介绍了C语言如何获取文件MD5值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-08-08
  • C++设计模式中控制反转与依赖注入浅析

    C++设计模式中控制反转与依赖注入浅析

    这篇文章主要介绍了C++设计模式中控制反转与依赖注入,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • C++实现LeetCode(154.寻找旋转有序数组的最小值之二)

    C++实现LeetCode(154.寻找旋转有序数组的最小值之二)

    这篇文章主要介绍了C++实现LeetCode(154.寻找旋转有序数组的最小值之二),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论