c语言编程题目:求两个数的最大公约数(辗转相除法)

题目:求两个数的最大公约数。使用辗转相除法。                                


编程思路分析

  1. 两个数设两个变量a,b。
  2. 使用辗转相除法运算。
  3. 求出最大公约数并输出。

重点运算思路

  1. 辗转相除法:若b = 0,则直接得到a的最大公约数。否则计算a%b得到余数,存入一个变量x中,让a = b,b = x。并以此为基础循环。
  2. 设我们要求的a和b分别是8和14。首先b != 0,到第二步, → 
    x = a%b = 8,a = b =14,b = x = 8;
    x = a%b = 6,a = b = 8,b = x = 6;
    x = a%b = 2,a = b = 6,b = x = 2;
    x = a%b = 0,a = b = 2,b = x = 0;
    b = 0 →循环结束。
  3. 得到a为最大公约数2。 

实现代码如下

#include <stdio.h>

//求最大公约数a, b
int main(){
    int a = 0;
    int b = 0;
    int x = 0;
    
    scanf("%d", &a);
    scanf("%d", &b);
    
    while(b != 0){
        x = a%b;
        a = b;
        b = x;
    }
    
    printf("最大公约数是 = %d", a);
    return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值