首页 > 其他分享 >杭电OJ 2028求n个数的最小公倍数

杭电OJ 2028求n个数的最小公倍数

时间:2024-03-10 14:11:06浏览次数:19  
标签:return OJ 公倍数 杭电 int num include GCD

Lowest Common Multiple Plus

首先,求a、b两个数的最小公倍数很简单,只要先求出其最大公约数,再\(a * b/GCD(a,b)\)。那么求n个数的最小公倍数,思路也是一样的。但是OJ判题一直WA,查了一下别的博客,发现错误的原因是在求公倍数的过程中要先除再乘,防止溢出,即\(a / GCD(a,b) * b\)

以及要使用max(a, b)、min(a, b)函数,需要调用头文件#include <algorithm>。这样修改就AC通过了。

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> myVector;
//前提a一定比b大
int GCD(int a, int b) {
    if(b == 0) {
        return a;
    } else {
        return GCD(b, a%b);
    }
}

//为防止越界先除再乘
int LCM(int a, int b) {
    return a / GCD(max(a, b), min(a, b)) * b;
}

int main()
{
    int n;
    while(cin >> n) {
        int num;
        for(int i = 0; i < n; ++i) {
            cin >> num;
            myVector.push_back(num);
        }
        if(n == 1) {
            cout << myVector[0] << endl;
        } else {
            int answer = LCM(myVector[0], myVector[1]);
            for(int i = 2; i < n; ++i) {
                answer = LCM(answer, myVector[i]);
            }
            cout << answer << endl;
        }
        myVector.clear();
    }
    return 0;
}

标签:return,OJ,公倍数,杭电,int,num,include,GCD
From: https://www.cnblogs.com/paopaotangzu/p/18064133

相关文章

  • 下载Project 2021专业版项目管理软件
    Project2021专业版是微软公司推出的一款功能强大的项目管理软件,可以帮助用户有效地规划、执行和控制项目。主要功能:项目计划:Project2021专业版可以帮助用户创建详细的项目计划,包括任务列表、时间表、资源分配等。资源管理:Project2021专业版可以帮助用户有效地管......
  • Qt开发,报错:Error while building/deploying project untitled (kit: ....)
    1、问题描述 Qt开发,编译时,报错如下:1Cannotfindfile:F:\linux\...\Console.pro.213:49:47:进程"D:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin\qmake.exe"退出,退出代码2。3Errorwhilebuilding/deployingprojectConsole(kit:DesktopQt5.14.2MSVC201764bit)4......
  • Blazor笔记-Project Struct
    更新记录注意:非教程。纯笔记,日常查询用的。需要教程的小伙伴找几本书看看即可哈哈,有Vue基础的话非常快,概念都是通的。非工作需要不建议深入学习Blazor,深入Vue吧,用的多,哈哈。完整目录地址:https://www.cnblogs.com/cqpanda/p/17596348.html点击查看2024年3月7日发布。2023......
  • Project2021专业版项目管理软件官网下载安装
    Project2021专业版是微软公司开发的一款功能强大的项目管理软件,可帮助用户有效地规划、管理和控制项目。它提供了丰富的功能和工具,可以帮助用户:创建和管理项目计划分配资源和任务跟踪项目进度管理项目预算沟通和协作分析项目绩效Project2021专业版的主要功能包括:......
  • CatOJ C0493C 计数 分讨
    对于\(\sum|E'|\),直接计算是简单的。对于\(\sum|E'|^2\),拆下贡献,可以拆成\(\sum\sum_{i,j\inE'}1\),设\(U\)为\(i\)和\(j\)两条边连接的点集,转化一下式子即为\(\sum_i\sum_j2^{n-|U|}\)。对于\(\sum|E'|^3\)同理,\(U\)为\(i,j,k\)三条边连接的点集,原式即为\(......
  • 由POJ1821得出的一些dp优化技巧
    比如for(inti=1;i<=m;i++){ for(intj=0;j<=n;j++){ dp[i][j]=dp[i-1][j]; } for(intl=max(1,s[i]-l[i]+1);l<=s[i];l++){for(intr=s[i];r<=min(n,l+l[i]-1);r++){dp[i][r]=max(dp[i][r],dp[i-1][l-1]+p[i]*(r-l+1));......
  • IDEA更新本地代码丢失,IDEA使用Update Project更新本地代码丢失
    问题原因提交代码前,IDEA更新Git本地代码丢失,IDEA使用UpdateProject更新Git本地代码丢失,更新代码时执行UpdateProject操作。执行完该操作会发现IDEA没有任何提示,默认覆盖了你本地还未提交的代码,本地呕心沥血写的代码瞬间人间蒸发解决办法LocalHistory(本地历史更改记录)当出现......
  • 题解 NKOJ2929 【[THUSC2014] 函数求解】
    代码:#include<iostream>#include<queue>#include<cstdio>#include<cmath>usingnamespacestd;typedefstruct{ intnxt; intend; intdis; doublecost;}Edge;constintN=2e3,M=400+7,K=80800+7;constdoubleep......
  • emoji字符的范围、正则替换Emoji字符
    Emoji与Unicode、UTF8Emoji是一种特殊的字符,而不是像QQ表情一样的普通字符的转义表示。在Unicode编码中,占用了U+1F300到U+1F64F中的部分范围。Emoji字符的特殊之处在于,其使用的Unicode字符超出了通常使用的三字节UTF-8编码的Unicode范围,即BMP范围U+0000到U+FFFF。按照UTF-8编码......
  • 2024 52pojie春节解题领红包之Windows 高级题
    202452pojie春节解题领红包之Windows高级题分析:crackme2024.exex64位程序upx脱壳,x64dbg设置异常,手动脱壳,略反调试cinit-->initterm_4定位到如下函数VEH_antiBP_140001670__int64VEH_antiBP_140001670(){qword_140020E58=findCC_1400022F0(0x64,0i64);AddVe......