當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。