C语言_用辗转相减编写最大公倍数

辗转相减法(求最大公约数),即尼考曼彻斯法,其特色是做一系列减法,从而求得最大公约数

例如 :两个自然数35和14,用大数减去小数,(35,14)->(21,14)->(7,14),此时,7小于14,要做一次交换,把14作为被减数,即(14,7)->(7,7),再做一次相减,结果为0,这样也就求出了最大公约数7。

#include <stdio.h>

int maximum(int,int);

int main(int argc, const char * argv[]) {

   

    printf("输入两个整数(空格键分开):");

    int num1,num2;

    scanf("%d %d",&num1,&num2);

    int a_1=maximum(num1, num2);

    printf("最大公倍数为:%d \n",a_1);

    return 0;

}

int maximum(int num1,int num2)

{

    int jieshao,temp,max,min;

    if (num1>num2)

    {

        max=num2;

        min=num1;

    }

    else

    {

        min=num2;

        max=num1;

    }

    int i=1;

    while (i>0)

    {

        if (max==min)

        {

            return max;

        }

        if (min>max) {

            

            temp=min;

            min=max;

            max=temp;

        }

        if (max>min)

        {

            jieshao=max-min;

            max=jieshao;

            

        }

    }

    return 0;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值