首页 > 其他分享 >C语言:更损相减法求最大公约数 函数应用

C语言:更损相减法求最大公约数 函数应用

时间:2023-02-25 08:33:06浏览次数:34  
标签:更相 损相 int 35 C语言 减损 最大公约数 63

#include <stdio.h>
//<<九章算术>>更相减损法: 可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。
//以等数约之。
///第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。
//第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。
//则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。
//其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法。所以更相减损法也叫等值算法。
//如98 63,98-63=35  63-35=28 35-28=7 28-7=21 21-7=14 14-7=7 7-7=0 
#include <math.h>
int gys(int a,int b)
{
    int c;
    while(a%2==0 &&b%2==0) 
    a=a/2,b=b/2;
    while((a-b)!=0)
    {
        c=abs(a-b);
        a=b;
        b=c;
    }
    return a;
}
main()
{
    int a=98,b=63,c;
    scanf("%d%d",&a,&b);
    printf("%d",gys(a,b));
    getchar();
 }

 

标签:更相,损相,int,35,C语言,减损,最大公约数,63
From: https://www.cnblogs.com/xkdn/p/17153724.html

相关文章

  • c语言以及高级语言中的float到底是什么以及IEEE754
    对内存里float4字节的好奇初学计算机都要学那个什么二进制十进制什么补码反码那些玩意儿哈,由于最近要做一个单片机往另外一个单片机发数据的需求,直接c语言指针然后float......
  • c语言调用chatgpt api
    前提:要有chatgpt账号,不会注册的关注抖音:21402780125,有免费教程!!在C语言中调用ChatGPTAPI,您需要使用C的网络编程库(例如libcurl)发送HTTP请求。以下是使用libcurl......
  • 【C语言经典算法100道实战题】学习资料大全
    ​【C语言经典算法100道实战题】适合具备C语言基础语法的同学学习,提高编写程序的逻辑思维能力和算法设计能力专门精心设计。100个经典的算法供大家练习及配套对应的录播视......
  • C语言指针错误
    以下指针代码出现的错误,因该是第二个for循环格式使用了逗号导致代码出现紊乱,但是在调试代码却没有报错。知道的回复一下。intmain(){ int*p,i,a[10]; p=a; for(i......
  • C语言宏的展开规律及其使用
    https://blog.csdn.net/mary288267/article/details/1164991351.C语言中嵌套宏的展开规律一般宏调用的展开规律是,先展开内层宏参数,再展开外层宏函数,所以展开顺序是由内而......
  • C语言运算符优先级(转载)
    https://www.cnblogs.com/blogernice/articles/13156017.html初级运算符()、[]、->、. 高于 单目运算符  高于 算数运算符(先乘除后加减) 高于 关系运算符......
  • C语言数据结构串的表示与操作的实现
    串的堆分配储存表示typedefstruct{ char*ch;//若是非空字符串,则按串长分配存储区,否则ch为NULL intlength;//串长度}HString;生成一个其值等于串常量的串HStr......
  • C语言中return、break、continue的用法和区别
    C语言中return、break、continue是我们常用的三个“流程控制”关键字。你能熟练使用这三个关键字吗?下面来讲讲这三个关键字,以及相关的内容。 0概述大部分编程语言......
  • C语言运算符优先级
    优先级运算符运算结合关系举例1+单目不变自右向左a*+b1-单目取负自右向左a*-b2*乘自左向右a*b2/除自左向右a/b2%取余自左向右a......
  • C语言可变参数的使用详解
    一、可变参数表介绍c/c++语言具备一个不同于其他编程语言的的特性,即支持可变参数。例如C库中的printf,scanf等函数,都支持输入数量不定的参数。例如:printf("hello world......