首页 > 其他分享 >求最大公约数伪代码

求最大公约数伪代码

时间:2022-10-09 13:22:53浏览次数:82  
标签:Set num1 num2 int 代码 unsigned 最大公约数

求最大公约数伪代码

上网查找什么是求两个数的最大公约数的欧几里得算法(辗转相除法),提交算法说明和网上链接

欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数计算公式gcd(a,b) = gcd(b,a mod b)。

#include<stdio.h>
unsigned int MaxCommonFactor(int a,int b)
{
    if(a % b == 0)
        return b;
    return MaxCommonFactor(b, a % b);
}
unsigned int Gcd(unsigned int M,unsigned int N)
{
    unsigned int Rem;
    while(N > 0)
    {
        Rem = M % N;
        M = N;
        N = Rem;
    }
    return M;
}
int main(void)
{
    int a,b;
    scanf("%d %d",&a,&b);
    printf("the greatest common factor of %d and %d is ",a,b);
    printf("%d\n",Gcd(a,b));
    printf("recursion:%d\n",MaxCommonFactor(a,b));
    return 0;
}

参考https://baike.baidu.com/item/欧几里得算法/1647675

参考教材,用伪代码(英语或汉语)实现欧几里得算法(辗转相除法),提交伪代码

 我参考的是书中关于进制转换的伪代码和C语言中辗转相除法的代码

Read num1
Read num2
Set m to max(num1,num2)
Set n to min(num1,num2)
Set quotient to m REM n
While (quotient!=0)
   Set m to n
   Set n to quotient
   Set quotient to m REM n
Write "The answer is",n

选择几组数据,手动走一下伪代码,测试你写的伪代码是否正确,提交测试过程截图

第一组
输入num1=20 num2=30
则n=20,m=30,q=10
q不等于0
m=20 n=10 q=0跳出循环
The answer is 10
第二组
输入num1=28 num2=7
则n=7 m=28 q=0不进入循环
The answer is 7
第三组
输入num1=37 num2=29
则m=37 n=29 q=8
q不等于0
m=29 n=8 q=5
m=8 n=5 q=3
m=5 n=3 q=2
m=3 n=2 q=1
m=2 n=1 q=0跳出循环
The answer is 1

 

标签:Set,num1,num2,int,代码,unsigned,最大公约数
From: https://www.cnblogs.com/liudi20221408/p/16770643.html

相关文章

  • 求最大公约数
    求最大公约数1.求最大公约数的欧几里得算法:欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b)=......
  • 利用 spring 的 bean 和策略模式优雅的写出可扩展的代码
     代码的的其中有个设计原则就是:开闭原则。 我们在开发过程中经常会遇到这样的问题:就是往往需要有不同的计算方案,比如促销方案,打折。 这个例子就是通过利用 spring ......
  • 查找数组中元素 伪代码
    任务详情输入一个固定长度的数组,并输入一个要查找的数,给出能不能检索到的伪代码并测试伪代码setfoundtoFALSEwhile(position<6ANDfoundisFALSE)if(numbers......
  • 输入一个固定长度的数组,并输入一个要查找的数,给出能不能检索到的伪代码并测试
    060175295380465590 Length=6            Readinarrayofvalues             Set......
  • java开发框架低代码平台会不会过时?
    其实,框架一词原先是出现下建筑领域的,主要是指在建造房屋前期构建的建筑骨架。后来在编程领域,框架就引申为应用程序的骨架了,在这个基础上,程序员可以随心加入自己想要的元素,......
  • 一、注册流程梳理及代码封装-14
    #编码#coding=utf-8#浏览器驱动包fromseleniumimportwebdriver#时间包importtime#引入随机数生成包importrandom#使用pip库进行图片解析包/取图片......
  • 如何使用物联网低代码平台进行设备调试?
    AIRIOT物联网低代码平台具有设备调试功能,通过数据调试,可判断设备接入时间否正常。如何使用AIRIOT平台进行设备调试,操作如下:设备调试设备调试用于平台接入资产后,进......
  • 精致动画特效及源代码
    css简介CSS主要用于控制网页的外观,CSS代码可以随意变化网页的布局和网页的内容样式。当CSS3出现以后,更是可以让网页增添了不少动画元素,随着IE6,7的淘汰,手机端的崛起更......
  • .NET现代化应用开发 - CQRS&类目管理代码剖析
    ​本周MASAFramework进行了第四次课程直播,课程主题为类目管理的开发,直播中进行了理论讲解和实战演练(CQRS实践的演示可直达推文底部观看直播回放)开始环节我们围绕三个点......
  • spring boot项目使用mybatis-plus代码生成实例
    前言mybatis-plus官方地址https://baomidou.commybatis-plus是mybatis的增强,不对mybatis做任何改变,涵盖了代码生成,自定义ID生成器,快速实现CRUD,自动分页,逻辑删除等功......