第一次接触这个算法,同时也觉得很奇妙,在本文加以练习,并与大家分享。

辗转相减法是一种简便的求出两数最大公约数的方法。(更相减损术)

辗转相减法(求最大公约数),即尼考曼彻斯法,其特色是做一系列减法,从而求得最大公约数。例如 :两个自然数35和14,用大数减去小数,(35,14)->(21,14)->(7,14),此时,7小于14,要做一次交换,把14作为被减数,即(14,7)->(7,7),再做一次相减,结果为0,这样也就求出了最大公约数7。

个人觉得这个算法确实称得上很神奇,简明实用。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//求两个数的最大公约数,辗转相减法
int main()
{int a = 0;int b = 0;printf("please enter:");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;
}

有段时间没写代码了,这么一小段写的略显尴尬,敲代码还是不能停呀。

辗转相减法求最大公约数相关推荐

  1. 辗转相除求最大公约数,最大公倍数

    上次笔试考到这个,不知道辗转相除什么意思,用短除法做的,回来查了一下才知道 辗转相除法也叫欧几里德算法,这是原理 例如,求(319,377): ∵ 377÷319=1(余58) ∴(377,319)= ...

  2. php最大公约数辗转相除程序,[转]辗转相除求最大公约数

    转:蓝魔之泪de万事屋百度博客 http://hi.baidu.com/didihl/blog/item/533b1fec7cea252063d09f82.html 辗转相除算法的简介 在数论中,辗转 ...

  3. C语言经典例题100道(辗转相除求最大公约数和最小公倍数)

    程序[16] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 程序分析: (1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数: (2)求最大公约数用辗转相除法(又名 ...

  4. 辗转相除求最大公约数

    描述:计算两个非负整数 p 和 q 的最大公约数:若 q 是 0,则最大公约数为 p.否则,将 p 除以 q 得到余数 r,p 和 q 的最大公约数即为 q 和 r 的最大公约数. <span ...

  5. 求最大公约数c语言代码_辗转相除求最大公约数原理

    辗转相除法代码 代码并不难,很多人都会写. public static int f(int a, int b){ while(b != 0){ int temp = b; b = a % b; a = ...

  6. 【C++】辗转相除求最大公约数算法及原理

    在洛谷上刷到一道题 P1888 三角函数 里面用到了求最小公约数的方法.所以想着总结一下,了解一下求最小公约数的原理. 其实C++自带gcd函数,需要导入algorithm库 举例: #include ...

  7. 辗转相除求最大公约数原理

    首先看 代码如下,代码并不难,很多人都会写. public static int f(int a, int b){while(b != 0){int temp = b;b = a % b;a = te ...

  8. 辗转相除求最大公约数最小公倍数 扩展欧几里得算法

    最大公约数最小公倍数 #include<stdio.h>int gcd(int a, int b) {return (b ? gcd(b, a % b):a); }int lcm(int ...

  9. C语言 递归实现辗转相除法 和 辗转相减法

    假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里德算法,是这样进行的: 1997 / 615 = 3 (余 152) 615 / 152 = 4(余7) 152 / 7 = 21(余 ...

最新文章

  1. 9.如何使用QT绘制导航箭头的图标
  2. dat关闭某进程_超详细解析!工程师必会的Linux进程间通信方式和原理
  3. 原生Js_简易图片轮播模板
  4. 分步学习Struts(三) 原理分析
  5. 函数节流与防抖的实现
  6. 万达放弃A股上市,数据揭秘王思聪投资为何频繁跳水?
  7. ManageEngine保护您的浏览器
  8. VC 为静态控件添加事件
  9. 我的C#/.NET学习诀窍——LINQPad
  10. 开发部门现在存在的一些问题
  11. matlab百分号是什么意思,matlab 两个百分号
  12. python金融编程入门_零基础是如何入门Python量化金融的?
  13. 关于微信投票活动存在微信人工刷票数的情况解析
  14. “云脉文档管理”微信小程序提供高效的办公体验
  15. Dungeon Master(地下城主)
  16. QT css样式 详解
  17. 运维真的不是夕阳产业!(不谈技术)
  18. getElementById 用法的一个技巧
  19. 魅族mx3升级到android6.0,升级安卓4.4!魅族MX3 Flyme 3.6.1A发布
  20. 华为面向5G的室内覆盖数字化概述

热门文章

  1. 制作一个小工具:自动生成“将特定枚举值转换成字符串的C++函数”的代码
  2. 这东西有什么好吃的,我也就吃了二十多碗吧 | 钛空舱
  3. SpringBoot Feign接口调用启动类异常Consider defining a bean of type ‘xxx‘ in your configuration.
  4. 明日之后1.0(完整版)
  5. 5月以来逾200家公司重要股东增持 *ST海润已获10次增持
  6. 使用SAE KVDB快速实现 支持中文/拼音/全拼/的AutoComplete
  7. python docx 加粗的边框_使用python-docx在表格中指定边框外观
  8. 银行家算法判断状态是否安全
  9. 数据存储——声音存储
  10. 技校计算机课程教学课件,技工学校计算机应用基础教学