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