https://oomake.com/question/1736140点击查看更多大佬
题意:
n根火柴,能摆出的最大数和最小数,没有前导零。
思路:
最大数很简单,n是偶数就“111”,是奇数就"711",位数尽可能大。
最小数位数要尽可能小,如果n是7的倍数,全摆成‘8’是最优的;如果不是,那我们要让当前摆的值尽可能小,这句话不好理解,一般你看懂代码才能明白,接下来我会用更简单的思路来让你理解这种解法。
思路详解:
假如我们有n根火柴,要摆出最小的数,我们会先摆‘8’,消耗尽可能多的火柴,会出现多{0,1,2,3,4,5,6}根火柴的情况,多0已经是最优解,不必理会;多1,我们拆‘8’,n>=2不会出现给你1根的情况,我们一定有‘8’拆,把‘8’拆成‘0’,组合成‘10’是最优的;多2,最优解‘18’;多