换零钱,用java进行解答

img

img

img


想了很久但是不知道主函数这么下手,有人可以帮忙解答吗,还有请教一下“系统不执行main()函数,但系统会自动实例化对象并调用change()方法”是啥意思?

  把您的main()作为类方法,放在类构造方法下,当实例类时,您的main()就“自动”执行了。


  • 我仅会点python 。😂但听说,算法是不带语言的,所以,我用python class来走一个😋

    img


    img


    img


  • Python 代码
#!/sur/bin/nve python
# coding: utf-8

class Bank:
    
    def __init__(self):
        ''' 类构造方法 '''
        self.name = input('\n谁换零钱?').strip()
        self.change_face = sorted(list(map(int, input(f"\n现有零钱面值(如1 2 5):\n{'':>10}").strip().split())), reverse=True)
        self.money = int(input('\n兑换金额:').strip())

    def change(self):
        ''' 零钱兑换 '''
        money = self.money
        n = 0 # 最少零钱个数初值。
    
        for i in self.change_face: # 由大到小遍历银行现在零钱面值列表。
            n += money//i # 当前面值最大张数。
            money %= i
        
        return -1 if money else n

if __name__ == '__main__':
    bank = Bank() # 类实例。
    print(f"\n{'':~^41}\n\n{f'光明银行城东支行为{bank.name}兑换 {bank.change()} 个零钱':^24}\n\n{'':~^41}\n")


你到底是change方法的逻辑不会写
还是根本不知道该如何定义main函数
前面放了一大堆图,后面的问题和前面根本不沾边