21xrx.com
2025-03-21 17:33:07 Friday
文章检索 我的文章 写文章
C++输入n个数求最小公倍数
2023-07-09 19:16:03 深夜i     --     --
C++ 输入 n个数 最小公倍数

C++是一种高效的编程语言,拥有强大的程序编写能力。在C++中,可以轻松输入n个数,然后求它们的最小公倍数。本文将介绍如何使用C++编写这个程序,让大家了解使用C++输入n个数求最小公倍数的方法。

首先,我们需要先定义什么是最小公倍数。最小公倍数是多个数的公共倍数中最小的一个数。比如说,6和9的最小公倍数就是18,因为18是6和9的公共倍数中最小的一个。

为了输入n个数,需要使用C++中的数组功能。定义一个数组来存储n个数,然后使用for循环把这些数输入进去。例如,下面的代码可以输入10个数:

int n = 10;
int arr[n];
for(int i=0; i<n; i++){
  cin >> arr[i];
}

接下来,我们需要编写找出最小公倍数的函数。最小公倍数的公式为:

最小公倍数=两个数的乘积÷它们的最大公约数

因此,我们要先编写一个求最大公约数的函数。下面的代码是一个求最大公约数的函数:

int gcd(int a, int b){
  while(a!=0)
    int t = a;
    a = b % a;
    b = t;
  
  return b;
}

最大公约数的查找方法是使用辗转相除法。具体步骤是,其中a>b,将a除以b,取余数,余数为0时的b就是上述公式中的最大公约数。

有了求最大公约数的函数,我们就可以写出求最小公倍数的函数了。下面的代码是一个求最小公倍数的函数:

int lcm(int a, int b){
  return a * b / gcd(a,b);
}

最小公倍数的计算方法比较简单,直接使用上述公式即可。

最后,我们把上述两个函数组合起来,就可以求出输入的n个数的最小公倍数了。完整的代码如下:

#include <iostream>
using namespace std;
int gcd(int a, int b){
  while(a!=0)
    int t = a;
    a = b % a;
    b = t;
  
  return b;
}
int lcm(int a, int b){
  return a * b / gcd(a,b);
}
int main(){
  int n;
  cout << "输入n:";
  cin >> n;
  int arr[n];
  for(int i=0; i<n; i++){
    cin >> arr[i];
  }
  int ans = arr[0];
  for(int i=1; i<n; i++){
    ans = lcm(ans,arr[i]);
  }
  cout << "最小公倍数为:" << ans;
  return 0;
}

以上就是使用C++输入n个数求最小公倍数的方法。对于初学者来说,这并不是一个简单的程序,但如果认真学习和理解,就能够掌握这个问题。希望本文对大家有所帮助,有关使用C++编写其他程序的文章,可以查看本网站的其他文章。

  
  

评论区