基于visual Studio2013解决面试题之1503最大公约数最小公倍数

本文介绍了使用C++在Visual Studio 2013中解决求两个或多个数的最大公约数(GCD)和最小公倍数(LCM)的算法,提供了完整的代码示例,并给出了代码下载链接。同时,文章还提及了Markdown编辑器的一些新功能,如界面设计、图片拖拽、KaTeX公式等。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               



题目



解决代码及点评

  1.   
  1.   
  1. <code class="language-cpp">/* 
  2.     求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法 
  3. */  
  4.   
  5. #include <iostream>  
  6. using namespace std;  
  7.   
  8. int Gcd(int a, int b)  
  9. {  
  10.     if (a < b)  
  11.     {  
  12.         swap(a, b);  
  13.     }  
  14.     if (b == 0)  
  15.     {  
  16.         return a;  
  17.     }  
  18.     else  
  19.     {  
  20.         return Gcd(b, a%b);  
  21.     }  
  22. }  
  23.   
  24. int lcm(int a, int b)  
  25. {  
  26.     return a*b / Gcd(a, b);  
  27. }  
  28.   
  29. int nGcd(int *pnArr, int n)  
  30. {  
  31.     if (n == 0)  
  32.     {  
  33.         return *pnArr;  
  34.     }  
  35.     else  
  36.     {  
  37.         return Gcd(pnArr[n-1], nGcd(pnArr, n-1));  
  38.     }  
  39. }  
  40.   
  41. int nlcm(int *pnArr, int n)  
  42. {  
  43.     if (n == 1)  
  44.     {  
  45.         return *pnArr;  
  46.     }  
  47.     else  
  48.     {  
  49.         return lcm(pnArr[n-1], nlcm(pnArr, n-1));  
  50.     }  
  51. }  
  52.   
  53.   
  54. int main()  
  55. {  
  56.     int a = 45;  
  57.     int b = 30;  
  58.     cout<<"gcd = "<<Gcd(a, b)<<endl;  
  59.     cout<<"lcm = "<<lcm(a, b)<<endl;  
  60.   
  61.     int nArr[4] = {12,4,6,8};  
  62.      cout<<"ngcd = "<<nGcd(nArr, 4)<<endl;  
  63.     cout<<"nlcm = "<<nlcm(nArr, 4)<<endl;  
  64.     system("pause");  
  65.     return 0;  
  66. }</code>  
/* 求两个或 N 个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法*/#include <iostream>using namespace std;int Gcd(int a, int b){    if (a < b)    {        swap(a, b);    }    if (b == 0)    {        return a;    }    else    {        return Gcd(b, a%b);    }}int lcm(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值