mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 14:18:20 +08:00 
			
		
		
		
	* feat(kotlin):new kotlin support files
* fix(kotlin):
    reviewed the formatting, comments and so on.
* fix(kotlin): fix the indentation and format
* feat(kotlin): Add kotlin code for the backtraking chapter.
* fix(kotlin): fix incorrect output of preorder_traversal_iii_template.kt file
* fix(kotlin): simplify kotlin codes
* fix(kotlin): modify n_queens.kt for consistency.
* feat(kotlin): add kotlin code for computational complexity.
* fix(kotlin): remove iteration folder.
* fix(kotlin): remove n_queens.kt file out of folder.
* fix(kotlin): remove some folders.
* style(kotlin): modified two chapters.
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
/**
 | 
						|
 * File: iteration.kt
 | 
						|
 * Created Time: 2024-01-25
 | 
						|
 * Author: curtishd (1023632660@qq.com)
 | 
						|
 */
 | 
						|
 | 
						|
package chapter_computational_complexity.iteration
 | 
						|
 | 
						|
/* for 循环 */
 | 
						|
fun forLoop(n: Int): Int {
 | 
						|
    var res = 0
 | 
						|
    // 循环求和 1, 2, ..., n-1, n
 | 
						|
    for (i in 1..n) {
 | 
						|
        res += i
 | 
						|
    }
 | 
						|
    return res
 | 
						|
}
 | 
						|
 | 
						|
/* while 循环 */
 | 
						|
fun whileLoop(n: Int): Int {
 | 
						|
    var res = 0
 | 
						|
    var i = 1 // 初始化条件变量
 | 
						|
    // 循环求和 1, 2, ..., n-1, n
 | 
						|
    while (i <= n) {
 | 
						|
        res += i
 | 
						|
        i++ // 更新条件变量
 | 
						|
    }
 | 
						|
    return res
 | 
						|
}
 | 
						|
 | 
						|
/* while 循环(两次更新) */
 | 
						|
fun whileLoopII(n: Int): Int {
 | 
						|
    var res = 0
 | 
						|
    var i = 1 // 初始化条件变量
 | 
						|
    // 循环求和 1, 4, 10, ...
 | 
						|
    while (i <= n) {
 | 
						|
        res += i
 | 
						|
        // 更新条件变量
 | 
						|
        i++
 | 
						|
        i *= 2
 | 
						|
    }
 | 
						|
    return res
 | 
						|
}
 | 
						|
 | 
						|
/* 双层 for 循环 */
 | 
						|
fun nestedForLoop(n: Int): String {
 | 
						|
    val res = StringBuilder()
 | 
						|
    // 循环 i = 1, 2, ..., n-1, n
 | 
						|
    for (i in 1..n) {
 | 
						|
        // 循环 j = 1, 2, ..., n-1, n
 | 
						|
        for (j in 1..n) {
 | 
						|
            res.append(" ($i, $j), ")
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return res.toString()
 | 
						|
}
 | 
						|
 | 
						|
/* Driver Code */
 | 
						|
fun main() {
 | 
						|
    val n = 5
 | 
						|
    var res: Int
 | 
						|
 | 
						|
    res = forLoop(n)
 | 
						|
    println("\nfor 循环的求和结果 res = $res")
 | 
						|
 | 
						|
    res = whileLoop(n)
 | 
						|
    println("\nwhile 循环的求和结果 res = $res")
 | 
						|
 | 
						|
    res = whileLoopII(n)
 | 
						|
    println("\nwhile 循环 (两次更新) 求和结果 res = $res")
 | 
						|
 | 
						|
    val resStr = nestedForLoop(n)
 | 
						|
    println("\n双层 for 循环的遍历结果 $resStr")
 | 
						|
} |