当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++17 std::lcm用法及代码示例


竞争性编程通常涉及计算两个数字的最小公倍数 (LCM)。一种方法是使用升压::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 <iostream> 
#include <numeric> 
  
using namespace std; 
  
int main() 
{ 
    cout << "LCM(10, 20) = " << std::lcm(10, 20) 
         << endl; 
    return 0; 
} 

输出:

20

要点:

  1. 该函数适用于正数,如果有一个参数为负数,则先转换为其模数,然后计算 LCM。
  2. 另外,它仅适用于整数数据类型,如果在其参数中提供了任何其他数据类型,如 char、double,那么它将抛出错误。

参考:

  1. C++ Weekly - Ep 67 - C++17’s std::gcd and std::lcm

相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 std::lcm in C++17。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。