我花了很多时间试图找到这段代码的公式,但仍然没有。我知道运行时间,但问题确实是,如果n = 100,例如,这段代码将输出多少行打印?是否有任何特定的公式来计算?我已完成的代码:
extension String {
func prepending(prefix: String) -> String {
return prefix + self
}
}
var name: String?
let username = name?.prepending("@")
答案 0 :(得分:2)
我觉得你需要一个公式来获得嵌套循环的迭代次数。
for( i = 1; i <= n; i++ )
for ( j = i+1; j <= n; j++ )
for( k = j+1; k <= n; k++ )
对于这些循环,迭代次数为:
(n*(n-1)*(n-2))/6, where n > 2.
上面那种嵌套循环的通用公式:
(n*(n-1)* ... *(n-r+1)) / r!, where n > r-1.
这里,r =嵌套循环的数量
例如:当n = 20且r = 3时,迭代次数将为=(20 * 19 * 18)/ 3! = 1140
答案 1 :(得分:0)
严格地说, i&lt; j&lt; ķ的。还有,1≤i&lt; j&lt; k≤n。
或者换句话说,打印的行数是来自n个总数的3个不同数字的不同无序集合的数量。你可以从这里继续。
提示:组合