原题链接:[编程入门]最大公约数与最小公倍数
解题思路:
纯小白,入坑几个星期(有错误请谅解)
一个非常简单容易理解的方法.
先接受两个数(当然是废话)
然后判断接受的两个数大小关系
为什么要判断?
因为最大公约数小于大的那个数
以此来限制接下来for循环的循环次数
判断出来了
分别讨论就好了
最大公约数求法:
先定义一个函数(免得输两次求公约数方法)
函数思路就是从比较大的那个数(记作i)开始减小直到1循环尝试
尝试啥?
能不能被输入的两个数同时整除
能的话代表那个不断减少的数(i)就是我们要求的那个公约数!
而且由于是从大到小循环,不必考虑公约数是不是最大的问题
然后就是公倍数
根据高中数学经验:
两个数相乘再除以其最大公约数就是其公倍数!
注意事项:
无,细心就好.
参考代码:
#include <stdio.h> int fun(int x,int y){ for(int i = x;i > 0;i--){ if(x % i == 0&&y % i == 0){ return i; } } } int main(){ int a,b; scanf("%d%d",&a,&b); if(a > b){ int c = fun(a,b); printf("%d ",c); printf("%d",a * b / c); }else if(a < b){ int d = fun(b,a); printf("%d ",d); printf("%d",a * b / d); } }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复