📜  C++ 17中的std :: lcm

📅  最后修改于: 2021-05-30 16:57:09             🧑  作者: Mango

竞争性编程通常涉及两个数字的最小公倍数(LCM)的计算。一种实现方法是使用boost :: math :: lcm() ,我们在后文中讨论了C++中用于计算LCM的内置函数。
但是,最近,C++的最新版本C++ 17还包括了另一个用于计算LCM的内置函数std :: lcm() 。此函数在头文件中定义。

句法:

std::lcm (m, n)
Arguments: m, n
Returns: 0, if either of m or n are 0
         else, returns lcm of mod(m) and mod(n)

请记住,由于此功能已在最新版本的C++中定义,因此在不支持C++ 17的编译器中使用此函数将引发错误。

// CPP program to illustrate
// std::lcm function of C++
#include 
#include 
  
using namespace std;
  
int main()
{
    cout << "LCM(10, 20) = " << std::lcm(10, 20)
         << endl;
    return 0;
}

输出:

20

重要事项:

  1. 此函数适用于正数,如果任何参数为负,则首先将其转换为模数,然后计算LCM。
  2. 而且,它仅适用于整数数据类型,并且如果在其参数中提供了其他任何数据类型(如char,double),则将引发错误。

参考:

  1. C++每周–第67集– C++ 17的std :: gcd和std :: lcm
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”