【发布时间】:2010-08-31 19:22:47
【问题描述】:
我刚刚在 SE 职位面试中得到这个问题,除了蛮力之外,我不太清楚如何回答:
给定一个自然数 N,找出两个数 A 和 P,这样:
N = A + (A+1) + (A+2) + ... + (A+P-1)
P 应该是可能的最大值。
例如:对于 N=14,A = 2 和 P = 4
N = 2 + (2+1) + (2+2) + (4+2-1) N = 2 + 3 + 4 + 5
有什么想法吗?
【问题讨论】:
-
A 和 P 是否允许为实数?还是必须是整数?
-
定义蛮力。您可以从 1 开始迭代
A的所有值并尝试在O(1)中为每个值找到P吗? -
@EvilTeach,问题指定自然数(正整数)
-
我什至不记得什么是自然数。也许这就是为什么我只是一个程序员而不是软件工程师的原因。 :)
-
@EvilTeach 如果 A 和 P 不是整数,那么求和就没有意义了。
标签: algorithm