應用
小明在玩一個數字加減游戲,輸入4個正整數:s、t、a、b,其中s>=1,b<=105,a!=b。只使用加法或者減法,使得s=t。
每回合,小明用當前的數字,加上或減去一個數字;目前有2種數字可以用來加減:a、b,其中b沒有使用次數限制。 請問小明至少使用多少次a,才能使s=t?
實現
strings = input("請依次輸入4個以空格分隔的正整數,分別代表s、t、a、b,其中s>=1,b<=105,a!=b:").split()
numbers = [int(i) for i in strings]
s, t, a, b = numbersM = 0def dividing_judgement(x, y):r = x % yif r == 0:result = Trueelse:result = Falsereturn resultif s <= t:result = dividing_judgement(t-s, b)# s可以通過b的整數倍相加變成tif result:print("至少使用0次a")else:while not result:s = s + aM += 1result = dividing_judgement(t-s, b)print(f"至少使用{M}次a")
else:result = dividing_judgement(s-t, b)# s可以通過b的整數倍相減變成tif result:print("至少使用0次a")else:while not result:s = s - aM += 1result = dividing_judgement(s-t, b)print(f"至少使用{M}次a")
請依次輸入4個以空格分隔的正整數,分別代表s、t、a、b,其中s>=1,b<=105,a!=b:1 10 5 2
至少使用1次a