zoukankan      html  css  js  c++  java
  • 2018蓝桥杯|算法训练|最大最小公倍数

    问题描述

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

    输入格式

    输入一个正整数N。

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

    1 <= N <= 106

    答案来源:http://blog.csdn.net/liuchuo/article/details/51989099

    #include <iostream>  
    using namespace std;  
    int main() {  
        long long n, ans;  
        cin >> n;  
        if(n <= 2)  
            ans = n;  
        else if(n % 2 == 1)  
            ans = n * (n-1) * (n-2);  
        else if(n % 3 == 0)  
            ans = (n - 1) * (n - 2) * (n - 3);  
        else  
            ans = n * (n - 1) * (n - 3);    
        cout << ans;  
        return 0;  
    }

    (锦囊)贪心算法:

      贪心方法是一种改进的分级处理方法。他首先根据题意,选取一种度量标准,然后按照这种度量标准计算局部的最优解。(关键:选取最优度量标准)

    思路:
    n<=2 时 最小公倍数是n

    n为奇数时 最大最小公倍数是最末三位数相乘

    n为偶数时 (由于最末三位数为 偶-奇-偶型,最小公倍数是三个数乘积除以2)

      若n还是3的倍数,比如6 最大最小公倍数是(n-1)*(n-2)*(n-3)  

      若n不是3的倍数,比如8 最大最小公倍数是n*(n-1)*(n-3)  因为n-2是偶数

  • 相关阅读:
    ## js 性能 (未完。。。)
    React 创建元素的几种方式
    Json 与 javascript 对象的区别
    js 基本数据类型
    第十三章 事件
    第十二章 DOM2和DOM3
    第十一章 DOM扩展
    第十章 DOM
    第八章 BOM
    第七章 函数表达式
  • 原文地址:https://www.cnblogs.com/qq1337822982/p/8453245.html
Copyright © 2011-2022 走看看