计算循环迭代的公式

时间:2016-09-10 11:28:04

标签: java loops

我花了很多时间试图找到这段代码的公式,但仍然没有。我知道运行时间,但问题确实是,如果n = 100,例如,这段代码将输出多少行打印?是否有任何特定的公式来计算?我已完成的代码:

extension String {
    func prepending(prefix: String) -> String {
        return prefix + self
    }
}

var name: String?
let username = name?.prepending("@")

2 个答案:

答案 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个不同数字的不同无序集合的数量。你可以从这里继续。

提示:组合