二数
题意
一个T<=100,一个n, 1<=n<=10^100000-1
二数:十进制下每一位都是偶数的数
求离n最近的二数
思路
用字符串存。
思考可以得到,对于n要么向小了变,要么向大了变。
遍历,对于遇到的第一个奇数k,
1、变小:k–
然后其他所有的数字都变成‘8’
2、变大:k++
然后其他所有数字变成’0‘
对于k==’9’的情况,直接取变小就好了,因为变小的代价肯定小于变大的代价。
然后比较谁更近的话,从高位开始一位一位的比较差值大小就好了……
输出的时候去掉前导0,就好了……
(代码依旧丑,其实很多地方可以改进,但我也懒得……)
看!代码
1 |
|