【发布时间】:2012-02-01 13:34:02
【问题描述】:
给定一个正整数 N,我们可以按任意顺序任意多次应用以下任何操作:
第一个操作:给定正整数N加1;如果 N 为 7,则经过该操作后 N 变为 8。如果 N 为 999,则经过该操作后,它变为 1000。
第二次操作:选择任何出现的任何数字并将其替换为另一个数字。 (475->479, 101 -> 111, 299 -> 199 等等)
第三次操作:在 N 的十进制表示左侧添加任意非零数字:47 -> 247、9999 -> 49999、2474 -> 72474 等等)。
求将 N 变为幸运数字所需的最小操作次数。(幸运数字是正整数,其十进制表示仅包含幸运数字 4 和 7。例如,数字 47、744、4 是幸运数字和5、17、467 不是。)
示例:
N=25,答案=2
N=46,答案=1
N=99,答案=2
我在 LUCKY NUMBER 上尝试各种问题时发现了这个问题。 我被这个问题困住了...... 请帮忙..
【问题讨论】:
-
你有时间限制吗?
-
有没有比仅仅替换数字更好的解决方案的例子?
-
不完全是,但约束 N 为 1
-
一个澄清是40被视为幸运数字?鉴于声明“幸运数字是正整数,其十进制表示仅包含幸运数字 4 和 7”,我认为它不是
-
比如你有407,我们可以取0加1变成417然后把1换成4或7吗?或者我们只能取0一次,然后加1直到达到4?
标签: algorithm