C++最大公约数(递归)详解
2023-06-13 09:11:59 时间
使用递归可以计算两个数字的最大公约数。根据欧几里得算法,两个正整数 x 和 y 的最大公约数的计算方法如下:
gcd(x,y) = y; 如果y除以x而没有余数
gcd(x,y) = gcd(y, x/y的余数);否则
这个定义指出,如果 x/y 没有余数,则 x 和 y 的最大公约数是 y;否则,答案就是 y 和 x/y 的余数的最大公约数。
下面的程序显示了递归的 C++ 实现:
// This program demonstrates a recursive function to // calculate the greatest common divisor (gcd) of two numbers. #include iostream using namespace std; // Function prototype int gcd(int, int); int main() int num1, num2; cout Enter two integers: cin num1 num2; cout The greatest common divisor of num1; cout and num2 is cout gcd(num1, num2) endl; return 0; int gcd(int x, int y) if (x % y == 0) //base case return y; else return gcd{y, x % y); }
程序输出结果:
Enter two integers: 49 28
The greatest common divisor of 49 and 28 is 7
22166.html
chtml相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- Linux stat函数_c++ stringbuffer
- PaddleOCR v2.6新特征与C++编译推理详细步骤演示
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- 深入理解C++11_c++ string char
- 暴力激活成功教程密码 – C++ 递归方法实现
- C++精通之路:红黑树的概念和实现方法的解析
- C++基本概念_c语言 c++区别
- C++ 不知算法系列之深入动态规划算法思想
- c++的链表-C++实现简单链表
- C/C++ 病毒木马LSP劫持应用
- C/C++ 递归遍历文件并计算MD5
- 【C++修炼之路】25.哈希应用--布隆过滤器
- C++ 宏定义与inline函数
- 【C++】手撕红黑树
- c++基础篇之C++ 模板
- 对C/C++可变参数表的深层探索详解编程语言
- C++ stable_sort(STL stable_sort)排序算法详解
- C++汉诺塔递归算法完全攻略
- C++ override和final关键字(详解版)
- C++文件依存关系介绍
- 深入理解C++中常见的关键字含义
- 全排列算法的非递归实现与递归实现的方法(C++)
- 二叉树遍历非递归C++实现代码
- c语言读取csv文件和c++读取csv文件示例分享
- C++递归删除一个目录实例
- C++模板特例化应用实例
- C++实现二叉树非递归遍历方法实例总结
- Ruby使用C++扩展实例(含C++扩展代码示例)