从键盘上输入三个数,求其最小公倍数。

分析:最小公倍数是指能整除这三个数的公倍数中的最小者,可以利用循环穷举的方法,看是否能整除这三个数。若能整除这三个数,则输出其中的最小的数即为最小公倍数。

第一种方法:最常见的方法。
常见代码如下:

    #include<stdio.h>
int max(int a,int b,int c)  //自定义函数max
{if(a>b&&a>c)            // 若a的值最大return a;           // 返回aelse if(b>a&&b>c)       // 若b的值最大return b;           // 返回belsereturn c;           //   否则返回c
}
void main()
{int x,y,z,i,j,k;printf("请输入三个数:");scanf("%d%d%d",&x,&y,&z); // 从键盘输入三个数k = max(x,y,z);          //调用max函数求出其中的最大值i= 1;1hile(1)                 //while循环,条件值为1{ j = k * i;if((j%x==0)&&(j%y==0)&&(j%z==0)) //满足条件,退出循环break;i++;}printf("最小公倍数为%d\n",j);
}

运行结果如下:

第二种方法:通过短除法实现。
短除法: 短除法思想为求三个数的因素,然后求这些因素的求积。算法设计代码如下:

 #include<stdio.h>
int max(int a,int b,int c)
{if(a>b&&b>c)return a;else if(b>a&&b>c)return b;elsereturn c;
}
void main()
{int x,y,z,i,j,k,t=1;printf("请输入三个数:");scanf("%d%d%d",&x,&y,&z);k = max(x,y,z);for(i=2;i<=k;i++){j = 1;while(j){j=0;if(x%i==0){x = x/i;j = 1;}if(y%i==0){y = y/i;j = 1;}if(z%i==0){z = z/i;j = 1;}if(j==1)t = t * i;}k = max(x,y,z);}printf("最小公倍数为:%d\n",t);
} 

运行结果如下:

代码分析:利用短除法求三个数的因子,然后求所有因子的乘积,即为最小公倍数,其中 j 作为循环是否进行的标志。
运行结果:该程序的执行结果与算法1 的结果一样。
第三种方法 : 求三个数的最小公倍数,可以先求两个数的最小公倍数,然后利用函数的嵌套求这三个数的最小公倍数。算法如下:

   #include<stdio.h>
int f(int x,int y)
{int a, b, c;a = x;b = y;c = x%y;while(c!=0){x = y;y = c;c = x%y;}return a*b/y;
}
void main()
{int a , b , c , d;printf("请输入三个数:");scanf("%d%d%d",&a,&b,&c);d = f( f(a,b),c);          //嵌套调用函数f()求解printf("最小公倍数为:%d\n",d);
} 

运行结果如下:

代码分析:第2~15行,自定义函数 f(),用来求两个数的最小公倍数,第21行,嵌套调用函数 f(),求得三个数的最小公倍数。
运行结果:该程序的执行结果与算法1和算法2 的结果一样。

求三个数的最小公倍数的解法之美相关推荐

  1. python函数编程求三个数的最小公倍数_Python求三个数的最小公倍数

    题目 求三个数的最小公倍数 思路 首先求两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数就是最终结果 有两种方案求两个数的最小公倍数 1. 分解质因数,也是短除法(在程序上差别不大) 循环 ...

  2. c语言学习-自定义并调用函数求三个数的最小公倍数

    c语言自定义并调用函数求三个数的最小公倍数 程序流程图: 代码: #include<stdio.h> int la1(int m ,int n,int p); int la2(int m ...

  3. Java求三个数的最小公倍数算法改进(化境)

    之前在<Java求3个数的最小公倍数LCM,要求LCM小于11亿时计算结果正确(在CPU性能小于1.8GHz的情况下)>一文中"避免了之前的算法最大计算量的情况"(相对 ...

  4. 蓝桥杯-核桃的数量 (求三个数的最小公倍数)

    题目大意:输入三个数,求出三个数的最小公倍数 题目解析:为了求出三个数的最小公倍数,我们可以先求出其中两个数的最小公倍数,然后再将它与第三个数求一个最小公倍数.我们知道,最大公约数的求法可以通过欧几里 ...

  5. 求三个数的最小公倍数(C语言)

    #include<stdio.h> int Gcd(int a, int b) //求最大公约数(两数乘积/最大公约数=最小公倍数) {return b == 0 ? a:Gcd(b,a% ...

  6. 求三个数的最大公约数和最小公倍数

    题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约数 ...

  7. 如何求多个数的最小公倍数

      历届试题 核桃的数量   时间限制:1.0s   内存限制:256.0MB 问题描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能 ...

  8. 求3个数的最小公倍数算法之数论再细化

    求3个数的最小公倍数之便捷算法(C# ) https://blog.csdn.net/number1killer/article/details/104681168 求3个数的最大公约数之算法研究集成 ...

  9. 三种算法求两个正整数的最大公约数和最小公倍数;求三个数的最大公约数和最小公倍数

    第二次作业 题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整 ...

最新文章

  1. [NC21228]货币系统
  2. 什么是计算机领域的实时系统
  3. 智能硬件(1)---十个智能硬件中文网站
  4. Ubuntu16.04: 和 Windows-7 双系统启动顺序更改
  5. 在recovery模式下命令控制手机_安卓手机开机密码忘记,解锁教程
  6. python协程详解_彻底搞懂python协程-第一篇(关键词1-4)
  7. 22. 栈的压入、弹出队列(C++版本)
  8. 贪心算法及几个常用的例题
  9. 2021-08-07-DJ-036 在阿里云服务器上迁移我们的数据库,以后省一台电脑的电费了
  10. xyz文件怎么生成三维模型_根据三维空间坐标点如何构建三维模型
  11. 限流 Redis list 列表 Lpush rpop 实现令牌桶 – PHP 实例
  12. FPGA读取ADXL345
  13. Java版本和JDK版本对应关系
  14. 程序江湖事——docker江湖缘
  15. 车间制造管理系统(上)
  16. window下diskpart给SD卡分区
  17. tf.one_hot()的用法
  18. 长程蓝牙温湿度及光照度传感器 , 带四通道开关及指示灯(集成太阳能微能量采集功能)
  19. Mac 时间机器 Time Machine 备份速度太慢的解决方法 (加速备份命令)
  20. 沸点压力计算java_依据相律,恒沸混合物的沸点不随外压的改变而改变。

热门文章

  1. FC6下chm文件阅读器chmsee的安装
  2. 《带你体验程序员专属编辑器Markdown编辑器|CSDN编辑器测评》
  3. swift 中构建3DTouch 及 widget
  4. 2022年节约用水倡议书
  5. unity helios_用于Eclipse Helios的JBoss工具!
  6. 语义网技术综述(web3.0)
  7. 《小狗钱钱》--chapter3.4.5--挖掘需求、排除干扰
  8. video标签设计vue视频播放器组件
  9. 使用微搭低代码集成腾讯地图
  10. 多元统计:相关概念总结