zoukankan      html  css  js  c++  java
  • 2018蓝桥杯|历届试题|核桃的数量

    问题描述

    小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:

    1. 各组的核桃数量必须相同

    2. 各组内必须能平分核桃(当然是不能打碎的)

    3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)

    输入格式
    输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30) 
    输出格式
    输出一个正整数,表示每袋核桃的数量。
    样例输入1
    2 4 5
    样例输出1
    20
    样例输入2
    3 1 1
    样例输出2
    3
     
     
    我的答案
     1 #include<iostream>
     2 using namespace std;
     3 int max(int a,int b){
     4     return a>b?a:b;
     5 }
     6 int main(){
     7     int n1,n2,n3,result,get;
     8     cin>>n1>>n2>>n3;
     9     int maxmum1=max(n1,n2);
    10     for(int i=maxmum1;;i++){
    11         if(i%n1==0&&i%n2==0){
    12             get=i;
    13             break;
    14         }
    15     }
    16     int maxmum2=max(get,n3);
    17     for(int i=maxmum2;;i++){
    18         if(i%get==0&&i%n3==0){
    19             result=i;
    20             break;
    21         }
    22     }
    23     cout<<result;
    24     return 0;
    25 }
    26  

    思路:此问题目的是计算三个数的最小公倍数。我先计算前两个数的最小公倍数get,再计算get和第三个数的最小公倍数result,result就是最终结果。

    优点:由于两个数的最大公因数一定大于等于这两个数中最大的数,这样我们就可以不从一开始查找,直接从两个数的最大值开始查找。

     
  • 相关阅读:
    「算法笔记」斜率优化
    「算法笔记」多项式求逆
    「算法笔记」霍尔定理
    「算法笔记」Min_25 筛
    「算法笔记」点分治
    「算法笔记」生成函数入门
    「算法笔记」快速数论变换(NTT)
    Spring Boot+Vue全栈开发实战PDF+源代码
    宅米网性能优化实践
    PHP 性能分析第一篇: Xhprof & Xhgui 介绍
  • 原文地址:https://www.cnblogs.com/qq1337822982/p/8448598.html
Copyright © 2011-2022 走看看