📜  用于在C++中计算LCM的内置函数

📅  最后修改于: 2021-04-23 15:54:17             🧑  作者: Mango

在进行编程时,很多时候,我们需要计算两个数字之间的最小公倍数(LCM)。我们已经在这篇文章中讨论了如何查找LCM。
代替定义然后使用计算lcm的函数,我们可以简单地使用C++的boost库的内置函数boost :: math :: lcm()

为了使用此函数,我们必须声明头文件

句法:

boost::math::lcm (m,n)
Parameters: m, n
Return Value: 0 if either m or n are zero,
else lcm of mod(m) and mod(n).
// CPP program to illustrate
// boost::math::lcm function of C++ 
#include 
#include 
  
using namespace std;
  
int main()
{
    cout << "LCM(10,20) = " << boost::math::lcm(10,20) 
         << endl;
    return 0;
}

输出:

LCM(10,20) = 20

要点:

  1. 该函数将在取两个数的模数后计算lcm,因此,如果任何一个数为负数,则将其转换为其模数,然后计算LCM。
  2. 如果任何数字为非整数数据类型,则此函数将引发错误。
    // CPP program to illustrate illegal
    // behaviour of boost::math::lcm function of C++ 
    #include 
    #include 
      
    using namespace std;
      
    int main()
    {
        cout << "LCM(1.0,20) = " << boost::math::lcm(1.0,20) 
             << endl;
        return 0;
    }
    

    该代码将引发错误,因为该函数的参数之一是双精度类型,因此此代码将不起作用。

  3. 在C++ 17中,引入了一个新的STL函数,用于计算两个数字的LCM,std :: lcm(),可在支持C++ 17功能的任何编译器上使用。
    要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”