zoukankan      html  css  js  c++  java
  • 算法5-----三个数大小比较

    题目:

    X,Y,Z三个整数,若干次操作让X,Y,Z变为相等,每次操作有两种操作可选:

    操作1:从X,Y,Z中选择两个数,都加1

    操作2:从X,Y,Z选择一个数,加2

    计算最少需要多少次操作令X,Y,Z变为相等。

    输入:三个整数A,B,C(0<=A,B,C<=100)

    输出:一个整数表示最少需要的操作次数。

    思路:

    判断X,Y,Z的大小,找出最大的数,用最大的数分别减去小的两个数得到两个差。若两个差的和为偶数,则返回次数为(差的和)//2 ,若两个差的和为奇数,则返回次数为(差的和)//2+2。

    def Numsequal(x,y,z):
        maxnum=max(x,y,z)
        if x==maxnum:
            mius1=x-y
            mius2=x-z
        elif y==maxnum:
            mius1=y-x
            mius2=y-z
        elif z==maxnum:
            mius1=z-x
            mius2=z-y
        if (mius1+mius2)%2==0:
            return (mius1+mius2)//2
        else:
            return (mius1+mius2+1)//2+1
    if __name__=="__main__":
        x=int(input())
        y=int(input())
        z=int(input())
        print(Numsequal(x,y,z))

     

  • 相关阅读:
    php-instanceof运算符
    windows10-seaslog安装笔记
    [类和对象]1 封装 调用成员函数
    [C++] 拓展属性
    [C++] 引用详解
    [C++] Const详解
    ROS 常用
    win10 ubuntu16双系统安装教程
    [0] OpenCV_Notes
    Ubuntu16.04安装openCV的问题集合
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/8890234.html
Copyright © 2011-2022 走看看