21xrx.com
2024-11-22 03:17:25 Friday
登录
文章检索 我的文章 写文章
C++输入n个数求最小公倍数
2023-06-26 08:24:28 深夜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++编写其他程序的文章,可以查看本网站的其他文章。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复