生成“有效”数字

时间:2012-11-02 15:00:05

标签: algorithm

我在接受采访时被问到以下问题。我对如何解决这个问题一无所知。有什么建议吗?

  

给定开始和结束整数作为用户输入,   生成具有以下属性的所有整数。

     

示例:

123 , 1+2 = 3 , valid number
121224 12+12 = 24 , valid number
1235 1+2 = 3 , 2+3 = 5 , valid number
125 1+2 <5 , invalid number

2 个答案:

答案 0 :(得分:2)

实现这一目标的几种方法是:

  1. 测试输入范围内的每个数字,看它是否合格。

  2. 仅生成符合条件的数字。对两个起始值使用嵌套循环,将循环索引的总和附加到循环索引以提供符合条件的数字。当附加数字超过上限时退出内部循环。

  3. 第二种方法可能在计算上更有效率,但第一种方法更易于编写和维护,并且是O(n)。

    我不知道面试官在寻找什么,但我怀疑沟通的能力比答案更重要。

答案 1 :(得分:1)

解决此问题的天真方法是迭代设定范围内的数字,将数字解析为数字序列,然后根据规则测试序列。有一个优化,问题主要是要求你找到fibonnaci数字,这样你就可以使用两个变量或寄存器并按顺序添加它们。

从您的问题中不清楚组件编号是否必须具有相同的位数。如果没有,那么您将必须生成组件编号安排的所有组合。