function repeat (str, n) { let result = '' if (n > 0) { while (true) { // 相当于除以2取余数,为1则拼接字符串 if (n & 1) { result += str } // 无符号右移 n >>>= 1 if (n <= 0) break // str倍增 str += str } } return result}
operator fun String.times(times: Int) = buildString { if (times <= 0) { return@buildString } var n = times var string = this@times while (true) { if (n and 1 == 1) { append(string) } n = n ushr 1 if (n <= 0) { break } string += string }}operator fun Int.times(string: String) = string * this