1019(C++)

來源:互聯網
上載者:User

標籤:

計算n個數的最小公倍數,可用歐幾裡得演算法計算兩個數位最大公約數,再計算兩個數最小公倍數

有了2個數最小公倍數演算法就簡單了,即為:計算第一和第二個數得到最小公倍數lc,再計算lc和第三個數最小公倍數......

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
inline int lcm(int a,int b);
int main()
{
 int N, n,a, i;
 cin >> N;
 while (N--)
 {
  cin >> n;
  vector<int>v;
  for (i = 0; i < n&&cin >> a; i++)
   v.push_back(a);
  if (n == 1)
  {
   cout << v[0] << endl;
   continue;
  }
  int lc = lcm(v[0], v[1]);
  for (i=2; i < n; i++)
   lc = lcm(lc, v[i]);
  cout << lc << endl;
 }
 return 0;
}
inline int lcm(int a, int b)
{
 int r,ra=a,rb=b;  //ra,rb記錄初始傳入是的a,b的值
 if (a<b)
  swap(a, b);
 while (a%b!= 0)
 {
  r = a%b;
  a = b;
  b = r;
 }
 int lc = ra*(rb / b);
 return lc;
}

1019(C++)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.