mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-10-31 10:26:48 +08:00 
			
		
		
		
	 306dc019ef
			
		
	
	306dc019ef
	
	
	
		
			
			* 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")
 | |
| } |