算法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))

 

原文地址:https://www.cnblogs.com/Lee-yl/p/8890234.html