【发布时间】:2010-10-04 10:11:42
【问题描述】:
procedure DoSomething(a_1, ... a_n)
p = a_1
for i = 2 to n
temp = p
for j = 1 to a_i
p = p * temp
DoSomething(10,2,2,2)
我们得到的结果好坏参半。我们中的一个得到 10^7,另一个得到 10^27。
我想我发现了我的错误...我每次都用 10 代替 p,而不是用新的值代替 temp。
编辑:这是我的工作:
{10, 2, 2, 2}
p = 10
i = 2 to 4
temp = p = 10
j = 1 to 2
p = 10 * 10 = 10^2
p = 10^2 * 10 = 10^3
i = 3 to 4
temp = 10^3
j = 1 to 2
p = 10^3 * 10 = 10^4
p = 10^4 * 10 = 10^5
i = 4 to 4
temp = 10^5
j = 1 to 2
p = 10^5 * 10 = 10^6
p = 10^6 * 10 = 10^7
10^7
【问题讨论】:
-
您在 PHP 代码中将 temp 设置为 arr[i],而不是 p。
-
实际上,对于上述两种尝试的问题,请参阅我的回答。
-
您在内循环的每一步都乘以 10 而不是 temp。
-
有时将注意力放在问题上,而不是计算机上。这就是家庭作业的用途。在您的编辑中,您做对了:尝试解开并理解算法(我注意到我的谜语解决方案中有一个错误:))。
-
我确实把我的想法...
标签: pseudocode