zoukankan      html  css  js  c++  java
  • 蓝桥杯-最大最小公倍数

      算法训练 最大最小公倍数  
    时间限制:1.0s   内存限制:256.0MB
    问题描述

    已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

    输入格式

    输入一个正整数N。

    输出格式
    输出一个整数,表示你找到的最小公倍数。
    样例输入
    9
    样例输出
    504
    数据规模与约定

    1 <= N <= 106

    解题思路:贪心+数学知识(相邻自然数互质,相邻的奇数互质)

    三个数,我们肯定是要尽量从n往下找,如果n为奇数,那么最大值必定是n*(n-1)*(n-2)。

    如果为偶数,判断是否是3的倍数,如果不是那么最大值是n*(n-1)*(n-3);否则(n-1)*(n-2)*(n-3)为最大值。

    代码:

     1 #include<iostream>
     2 #include<algorithm>
     3 #define ll long long
     4 using namespace std;
     5 int main(){
     6     ll n;
     7     cin>>n;
     8     ll ans=0;
     9     if(n==1){
    10         cout<<1<<endl;
    11     }else if(n==2){
    12         cout<<2<<endl;
    13     }else{
    14         if(n%2==1){
    15             cout<<n*(n-1)*(n-2)<<endl;
    16         }else{
    17             if(n%3){
    18                 cout<<n*(n-1)*(n-3)<<endl;
    19             }else{
    20                 cout<<(n-1)*(n-2)*(n-3)<<endl;
    21             }
    22         }
    23     }
    24     return 0;
    25 }
  • 相关阅读:
    github代码上传下载慢问题
    React Native环境搭建
    分布式模式之Broker模式
    如何构建技术体系
    https nginx配置
    自我管理--拖延 vs 心理
    idea+maven本地仓库更新问题
    后台服务集群日志管理
    技术男励志圣经
    线段树合并
  • 原文地址:https://www.cnblogs.com/ISGuXing/p/8612217.html
Copyright © 2011-2022 走看看