题目链接:https://code.google.com/codejam/contest/9234486/dashboard#s=p0
给一个数,这个数每次只能+1或-1,问把这个数变成每一位都是偶数的最少步数。
其实就是说,求和这个数的差的绝对值最小的每位都是偶数的数。
考虑比这个数小的数,要最大化这个数就是把这个数最高位的奇数-1后面的数都是8;
考虑比这个数大的数,要最小化这个数就是把这个数最高位的奇数+1后面的数都是0,但是要考虑当前最高位是9的时候,再+1是不可能的了,所以这一个情况就不需要++。
1 |
|