题目:
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))