取一个任意小于1美元的金额,然后计算可一换成最少多少没硬币。
硬币有1美分,5美分,10美分,25美分四种。
1美元等于100美分
例如:0.76美元可以换成3枚25美分和1枚1美分,类似76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分都是不符合条件的
方法一:笨办法
def least_num(num): if num < 5: least = num return least,'{}个1美分'.format(least) if num == 5: least = num//5 return least,'{}个5美分'.format(least) if num < 10: least = num//5 +num%5 return least,'{}个5美分,{}个1美分'.format(num//5,num%5) if num == 10: least = nun//10 return least,'{}个10美分'.format(least) if num <25: least = num//10 + num%10 return least,'{}个10美分,{}个1美分'.format(num//10,num%10) if num == 25: least = nun//25 return least,'{}个25美分'.format(least) if num > 25 and num<100: least = num//25 + num%25//10 + num%25%10//5 +num%25%10%5 return least,'{}个25美分,{}个10美分,{}个5美分,{}个1美分'.format(num//25,num%25//10,num%25%10//5,num%25%10%5) num = int(input('输入一个小于1美元的金额(为了简单我们输入小于100美分):')) print(least_num(num))
执行结果:
输入一个小于1美元的金额(为了简单我们输入小于100美分):76 (4, '3个25美分,0个10美分,0个5美分,1个1美分')
方法二:简单的抽出来
def least_num(num): coin = [25,10,5,1] coinN = [] for item in coin: coinN.append(num//item) num = num%item return coinN if __name__ == "__main__": num = int(input('输入一个小于1美元的金额:')) coinN = least_num(num) print('{}个25美分,{}个10美分,{}个5美分,{}个1美分'.format(coinN[0],coinN[1],coinN[2],coinN[3]))
执行结果:
输入一个小于1美元的金额:76 3个25美分,0个10美分,0个5美分,1个1美分