这水题,折腾了好久 = =。。给你一个数,判断它是否是 i 个(i>=1)阶乘的加和。
我第一反应是打表,10!已经超过100W了,所以到9!就可以了。把这10个数(0!== 0 )存下(代码1),然后用深搜算出来这10个数所形成的组合(代码2),然后直接打表就OK了 = =。。。
纠结时间长错误一是,标记数组开成10了 = =。。。我是从下标1开始算的。。。YM了半天。
错误二是,n小于0结束我写成n=-1结束了,YM死了,要不是看POJ讨论,我还检查不出来 = =呜呜。。
我看别人另一种做法是,直接减去比它小的最大的阶乘 = =。。。一直减,看是否等于0。。。
代码1
代码2
主程序。。打表。。