题解 | #函数求值#
函数求值
http://www.nowcoder.com/practice/20d6abf0fbcc49a799024e61fa2292c6
解题思路:如得到F(12)1和2的个数为res,计算F(123)。 字母含义res:0-12中1,2出现的次数,cnt为12这个数中1和2出现的次数X,t为当前数字的末尾,如此时输入为123,即t=3。 res = (res-cnt)10+cnt(t+1)+num2+min(t,2) 第一部分(res-cnt)10:考虑到12X的个位有十种变化(0-9),但X的大小未知,这一式子仅表示1X-11X出现1和2的次数 第二部分cnt(t+1):cnt为没有考虑的12X的情况,此时有0-X种变化,所有有cnt(t+1)次; 第三部分:num2为考虑个位上1和2的次数,注意,此时的范围是0X-11X,考虑个位即X中出现1和2的次数,所以为num2; 第四部分min(t,2):考虑12X,此时个位上出现1和2的次数,即min(t,2)。到此结束