C++实验7-最大公约和和最小公倍数
2016-06-02 19:33
381 查看
一、问题及代码:
二、运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201606/25a4f9a40114cc0af53647f1f29a9685)
三、心得体会:
感觉函数很难,所以必须要更多的实验练习以加强自身对函数有关知识的学习及掌握程度。
四、知识点总结:
辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数
(如果最后的除数是1,那么原来的两个数是互质数)。
/* * 文件名称:Ex7.cpp * 作 者:罗前 * 完成日期:2016 年 6月 2日 * 版 本 号:v6.0 * 对任务及求解方法的描述部分: * 输入描述:从键盘中输入两个整数 * 问题描述: * 程序输出:求这两个整数的最大公约数和最小公倍数 * 问题分析: * 算法设计: */ #include <iostream> using namespace std; int g; //定义全局变量 void Fun_1(int m,int n) { int t; if(m<n) { Fun_1(n,m); } else { while(n!=0) { t=m%n; m=n; n=t; } g=m; } } int Fun_2(int m,int n) { int t; t=(m*n)/g; return t; } int main(int argc,char *argv[]) { int m,n; cout<<"请输入两个数据:"; cin>>m>>n; Fun_1(m,n); cout<<m<<"与"<<n<<"的最大公约数是:"; cout<<g<<endl; cout<<m<<"与"<<n<<"的最小公倍数是:"; cout<<Fun_2(m,n)<<endl; return 0; }
二、运行结果:
三、心得体会:
感觉函数很难,所以必须要更多的实验练习以加强自身对函数有关知识的学习及掌握程度。
四、知识点总结:
辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数
(如果最后的除数是1,那么原来的两个数是互质数)。
相关文章推荐
- POJ 2689-Prime Distance(区间素数)
- 第十三周【项目4-立体类族共有的抽象类】
- C++ 用函数 泰勒公式求 sinx 的 cosx 值
- c++ 类型转换函数
- C语言-位域小问
- static const extern在C与C++中的区别
- 理解和使用zlib库 - 我个人的救赎
- c++调用python
- 关于C++中的继承和重载的区别
- c++指针
- C++ 变量命名约定和风格
- C++中#include <xxx.h>和#include "xxx.h"的区别(尖括号和双引号的区别)
- Struct和Class的区别
- C++中#include的工作原理
- C++11 | 运行时类型识别(RTTI)
- 李洪强-C语言5-函数
- c++学习课时二 简单的判断&&循环
- 第十三周【项目3-形状类族的中的纯虚函数】
- Eclipse运行C++问题Launch failed,Binary not found
- 详解Windows下Eclipse CDT 配置C-C++ 编译环境