编程难题

时间:2012-06-07 11:49:11

标签: algorithm

  

可能重复:
  algorithm to find a number in which product of number of 4 & 7 is maximum in given range

F4(X)为X的十进制表示中的位数4,F7(X)为X的十进制表示中的位数7。例如,

F4(456) = 1, F4(444) = 3, F7(1) = 0, F7(747) = 2. 

以下事情如何解决?

找到{F4(X) ∙ F7(X) : L ≤ X ≤ R}的最大值

1 ≤ L ≤ R ≤ 10^18

解决这个问题的最快算法是什么?

1.可以通过查找L和R之间的所有数字并找到最大乘积来尝试蛮力,但这种方法很容易超时。

1 个答案:

答案 0 :(得分:2)

因为这是一个家庭作业,我只会以问题的形式给你建议:

  • 1到10 ^ 18之间的数字中有多少位?
  • 数字可以同时为7和4吗?