zoukankan      html  css  js  c++  java
  • 2015安徽省赛 A.First Blood

    题目描述

    盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题: 老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大。盖伦很想第一个解决这个问题,你能帮助盖伦拿到“first blood”吗?

    输入

    首先是一个正整数T,表示有T组测试数据 每组测试数据是一个正整数n(1<=n<=10^6)

    输出

    对于每组测试数据,输出最大的最小公倍数,每个输出单独占一行

    样例输入

    2 9 7

    样例输出

    504 210

    第一次写的版本相当复杂,在万杰提示下改用位运算化很多:
     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 
     5 using namespace std;
     6 long long A;
     7 int main()
     8 {
     9     int C;
    10     cin >>C;
    11     while(C--)
    12     {
    13         cin>>A;
    14         if(A<3)
    15         {cout<<A<<endl;}
    16         else if(A&1) {cout<<A*(A-1)*(A-2)<<endl;}
    17         else if(A%3) {cout<<A*(A-1)*(A-3)<<endl;}
    18         else      {cout<<(A-1)*(A-2)*(A-3)<<endl;}
    19     }
    20     return 0;
    21 }
    22 /**************************************************************
    23     Problem: 1205
    24     User: 2014217052
    25     Language: C++
    26     Result: 正确
    27     Time:4 ms
    28     Memory:1500 kb
    29 ****************************************************************/
    30  
  • 相关阅读:
    3.22
    练习 3.16
    简单工厂模式
    Java-不可变字符串
    java中的缓冲流
    TCP协议下java通信
    nginx优化
    nginx反向代理
    shell-for循环
    shell-数组
  • 原文地址:https://www.cnblogs.com/dzzy/p/4692569.html
Copyright © 2011-2022 走看看