杭电2028

#include <cstdlib>
#include <iostream>

using namespace
std;

int
main(int argc, char *argv[])
{

    int
n;
   
    int
dividend,max,a[100]={0};
    while
(cin>>n)
    {

      max=0;
      for
(int i=0;i<n;i++)
      {

        cin>>a[i];
        if
(a[i]>max)
          max=a[i];
      }

      dividend=max;
      loop:for(int i=0;i<n;i++)
           {

             //cout<<"a["<<i<<"]="<<a[i]<<endl;
             if(dividend%a[i]!=0)
               {

                 dividend+=max;
                 goto
loop;
                 //cout<<"dividend="<<dividend<<endl;
               }
           }

      cout<<dividend<<endl;
    }

    //system("PAUSE");
    return EXIT_SUCCESS;
}

 

此题开始时不知道怎么求多个数的最小公倍数,以前只记得几个数的乘积除以他们的最大公约数就等于他们的最小公倍数,我的思维陷在里面了,后来网上查了一下,才写出上面的算法!脑子要灵活一些!

你可能感兴趣的:(杭电)