首页 > 其他分享 >C语言入门基础题:最大公约数(三个数间取最大公约数)

C语言入门基础题:最大公约数(三个数间取最大公约数)

时间:2024-08-07 21:26:45浏览次数:16  
标签:正整数 数间 int 28 样例 C语言 最大公约数 输入

1.题目描述


输入三个正整数x,y,z,求它们的最大公约数(Greatest common Divisor) g:最大的正整数g>=1满足 x,y,z都是g的倍数,即 (x mod g)=(y mod g)=(z mod g)= 0。

2.输入格式


输入一行三个正整数 x, y,z。


3.输出格式


输出一行一个整数 g,表示 x,y,z的最大公约数,


4.输入输出样例

输入1
12 34 56
输出1
2
输入2
28 70 28
输出2
14

5.说明/提示


样例解释

样例 1


12=2x6,34=2x17,56=2x28,g=2.


样例 2


28=14x2,70=14x5,28=14x2,g= 14。
数据规模
所有数据满足 1 ≤ x,y,z≤ 106

6.代码:

#include <stdio.h>

// 函数声明:计算两个数的最大公约数
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

int main() {
    int x, y, z;
    
    // 输入三个正整数
    scanf("%d %d %d", &x, &y, &z);
    
    // 求出x和y的最大公约数,然后与z求最大公约数
    int result = gcd(gcd(x, y), z);
    
    // 输出结果
    printf("%d\n", result);
    
    return 0;
}

标签:正整数,数间,int,28,样例,C语言,最大公约数,输入
From: https://blog.csdn.net/zxn275266/article/details/141000647

相关文章

  • 用C语言实现输入一个奇数n,输出一个由*构成的n阶实心菱形
    样图示例:一.基本思路该问题的主要难点时是如何使用循环通过人为输入的指定长度来确定空格和星号的输出,我的想法是将图形以中间最长的一条线分为上下部分,然后分别用不同的变量来表示空格和星号的输出,最后通过c语言来实现对图形颜色和闪烁的控制。二.具体实现1.上半部分......
  • 字符串左旋(c语言)
    1.字符串左旋//实现一个函数,可以左旋字符串的k个字符例如:ABCD左旋字符串的1个字符BCDA     ABCD左旋字符串的2个字符CDAB2.第一步我们先输入k(scanf),将第一位进行储存,然后其他位先前走一位,然后将第一位放在最后,然后进行打印。方法一#include<stdio.h>voidtest......
  • C语言实现猜数字小游戏
    游戏要求:1.电脑自动生成1-100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了还是小了的反馈,直到猜对游戏结束1.随机数的生产C语言提供了一个函数叫rand,这个函数可以生产随机数,函数的原型如下所示:rand函数会返回一个伪随机数,这个随机数的大小是在0-32767(......
  • C语言随机数的生成
    目录前言一、 随机数⽣成1.rand2.srand 3.time4.设置随机数的范围 总结前言我们在前面已经学到了分支和循环结果,掌握了前面的知识,我们已经可以写一点有趣的代码了一、 随机数⽣成要想完成猜数字游戏,⾸先得产⽣随机数,那怎么产⽣随机数呢?1.randC语⾔提供了⼀......
  • C语言 操作符详解
    目录一、操作符的分类二、二进制和进制转换 2.1二进制转十进制 2.2二进制转八进制 2.3二进制转十六进制 三、原码、反码、补码四、移位操作符4.1左移操作符​编辑 4.2右移操作符五、位操作符按位与:&按位或:|按位异或:^按位取反:~六、逗号表达式七、操作......
  • 《重生到现代之从零开始的C语言生活》—— 调试
    前言:调试是几乎每一个计算机行业的人员必备的技能,那么让我们来学习一下吧bugbug这个词好像出现在生活的很多地方,一般指在电脑系统中或程序中,隐藏着一些未被发现的缺陷和问题,简称程序漏洞调试(debug)我们发现bug后,下一步就是找到问题并修复问题,找问题的过程就是调试调试一......
  • 《重生到现代之从零开始的C语言生活》——函数递归
    递归啥是递归啊递归是解决问的一种方式,简单来说,就是函数自己调用自己递归解决问题把复杂的大问题转化为一个一个与原文题相似的小问题。递归的思想就是把大事化小在递归中,递就是递推,归就是回归递归中的限制条件递归必须存在限制条件,当满足这个条件时,递归不在继续每次......
  • 超详细明了的C语言函数递归,望周知。(包含求n的阶乘顺序打印⼀个整数的每⼀位求第n个斐
    1.递归是什么?递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。写⼀个史上最简单的C语⾔递归代码#include<stdio.h>intmain(){printf......
  • 排序算法 归并排序 MergeSort -- C语言实现
    归并排序归并排序(Mergesort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第2种方法);自下......
  • C语言——一维二维数组详解
    文章目录数组数组的概念一维数组的创建和初始化数组创建数组的初始化数组的类型一维数组的使用数组下标数组元素的打印数组的输入sizeof计算数组元素个数一维数组在内存中的存储二维数组的创建二维数组的概念二维数组的创建二维数组的初始化不完全初始化完全初始化按......