如果您知道的结果1+2+3+..+n
,则为n*(n+1)/2
。
例如,如果结果为5050
,那么我可以知道n
为100
。我如何获得该证书n
。但是,您只能n
通过加法和减法计算。
我知道我可以得到n
我的是,我可以从1遍历自然数为n,每不同的计算1+2+3+...+n
一样1
,1+2
,1+2+3
,...1+2+..+n
每一个结果,然后我可以检查5050
的话,我能找到n
的100
。但是我发现计算步骤将超过2000个步骤,因此找到一个好的算法可以找到n
?
谢谢!。
仅通过加法和减法...只需将1中的数字相加并检查总和是否为给定数字。
用伪代码。给出5050。
number := 5050
next, sum := 0
while sum <= number
next := next + 1
sum := sum + next
return next
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句