C语言易错题--求最大公约数与最小公倍数之和(辗转相除法)
题目来源:牛客网编程入门训练--BC115 小乐乐与欧几里得
输入描述:
每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)
输出描述:
对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。
解题思路:此题有多种解题方法,列如分别求出两数的最大公约数与最小公倍数,再将其相加。(大致方法:取两数较小数为初识化的最大公约数,依次--,直到找到能同时将其整除的数字再停下,即为最大公约数;最小公倍数类似,取两数较大数为初始化的最小公倍数,依次++,直到找到一个能同时将两数除尽的数字,即为最小公倍数)。
这种算法思想由于运算量比较大,某些网站限制通过时间,所以这里我们用效率更优的辗转相除法求出最大公约数,再将两数的乘积除以最大公约数即为最小公倍数。
下面上代码,需要注意的点在代码中以注释形式给出:
#include <stdio.h>
int main()
{long long m = 0; // 数字万一较大,用长长整型接收long long n = 0;scanf("%d %d", &m, &n);long long m1 = m;long long n1 = n; // 防止辗转相除过程中原数字改变,影响最小公倍数结果long long c = 0;while (c=m1%n1) //除尽的话n1即为最大公约数{m1 = n1;n1 = c; }long long max = (m*n) / n1;// max为最小公倍数printf("%lld\n", max + n1);return 0;}
over ~
C语言易错题--求最大公约数与最小公倍数之和(辗转相除法)相关推荐
- C语言易错题集 第四部
C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...
- C语言易错题集 第二部
C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...
- 【C语言】如何去求最大公约数和最小公倍数?
目录 概念 最大公约数 穷举法 辗转相除法 最小公倍数 我们在学习编程或者是在学习后进行课后习题练习的时候经常会碰见一种类型的题目,也就是去计算两个数的最大公约数或者是两个数的最小公倍数.这时我们虽然 ...
- 求最大公约数与最小公倍数 (辗转相除法+更相减损法+Stein算法)
辗转相除法与更相减损法对比: (1)两者都是求最大公因数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显 ...
- C语言易错题集 第一部
目录 一.优先级相关 二.指针相关 三.标识符相关 四.指针相关 五.指针相关 六.指针相关 七.字符串相关 八.i++相关 九.传递相关 十.#include相关 十一.字符串长度相关 十二.复杂表 ...
- C语言易错题集 第三部
目录 一.C语言程序exe相关 二.sizeof和strlen相关 三.小端存储相关 四.break和continue相关 五.函数声明相关 六.递归相关 七.预处理相关 八.C语言程序的最小单元相关 ...
- C语言易错题--将一个整数转换为六进制打印
题目来源:牛客网编程入门训练--BC111 小乐乐与进制转换 输入描述: 输入一个正整数n (1 ≤ n ≤ 109) 输出描述: 输出一行,为正整数n表示为六进制的结果 解题思路:由十进制数字打 ...
- if(a>b>c)的一个c语言易错题
如下图: 题目所考知识点: 1:逻辑运算符 2:if和else if结构 一:首先可能有些人不知道void/int main的区别,详情可以看我前面的那篇博客: 二:逻辑运算符: if(a> ...
- 【C语言】易错题 and 易混淆知识
C语言 易错题 and 易混淆知识 1. 以下关于指针的说法,正确的是( ) 2. 由多个源文件组成的C程序,经过**编辑.预处理.编译.链接**等阶段会生成最终的可执行程序.下面哪个阶段可以发现被调 ...
最新文章
- 著名统计学家Donald B. Rubin:机器是否可以思考甚至具有意识?
- C++Runge-Kutta龙格-库塔法求非线性常微分方程的解(附完整源码)
- 【前端3】jquary:页面加载,选择器,隔行换色,Dom,全选,动画,遍历,广告/抽奖,表单校验插件
- SQL Server 2008使用LINQ进行数据访问(转载自IT168 [ http://www.it168.com/ ])
- 如何快速正确的安装 Ruby, Rails 运行环境
- log4j2 logger_简单一致的Log4j2 Logger命名
- mysql 转型_MySQL的未来在哪?
- 基于Java+SpringBoot+vue+element实现前后端分离蛋糕商城系统详细设计
- Ubuntu扩大boot空间
- ValidateRequest=false 不在.net2.0 中该怎么办?
- mysql 黑框框 叫什么_Coreldraw菜单黑框框/黑块解决办法
- json数据格式分析
- JAVA线程池shutdown和shutdownNow的区别
- 探秘小程序(3):登录
- 海康威视DS-7808HW-SNH固件升级包支持萤石云
- 怎样写商业计划书 【转载】
- Flutter Web开发 浏览器运行
- 雷军博客分享-日本的电饭煲到底好在哪?
- 功能测试的类型之用户验收测试
- 小象学院数据分析笔记:绘制常见的图形