我已經重構了一些,而這些混沌的代碼和整個以下相當奇怪的構造來: #!/usr/bin/env python2.7
# ...
if (opts.foo or opts.bar or opts.baz) is None:
# (actual option names changed to protect the guilty)
sys.stderr.write("Some e
功能遞歸地查找並從具有整數元素 Min(A, b, e)
if (b=e)
return A[b]
m = (b+e)/2 // floor is taken
x = Min(A, b, m)
y = Min(A, m +1, e)
If(x < y)
return x
else
return y
我的前提是一個陣列返回的最小元素:b和e爲大於零的整數
我試圖找到一個循環不變,這樣我們可以證明這個節目部分糾正: { n >= 1 } pre-condition
i = 1;
z = 1;
while (i != n) {
i = i + 1;
z = z + i*i;
}
{ z = n*(n+1)*(2*n + 1)/6 } post-condition
我很堅持。一些到目前爲止,我已經試過不變的是: z <=
問題的每種面額的1: 的算法,我想出了是一樣的東西: pair<bool, bitmask>[n][A] memo;
// memo[i][j].first will be true if its possible to
// use up to i-th denomination for amt j
// memo[i][j].second will contain info on wh