mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-10-31 10:26:48 +08:00 
			
		
		
		
	 7b1094318b
			
		
	
	7b1094318b
	
	
	
		
			
			* cargo fmt code * Add empty line to seperate unrelated comments * Fix review * Update bubble_sort.rs * Update merge_sort.rs --------- Co-authored-by: Yudong Jin <krahets@163.com>
		
			
				
	
	
		
			75 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /*
 | |
|  * File: iteration.rs
 | |
|  * Created Time: 2023-09-02
 | |
|  * Author: night-cruise (2586447362@qq.com)
 | |
|  */
 | |
| 
 | |
| /* for 循环 */
 | |
| fn for_loop(n: i32) -> i32 {
 | |
|     let mut res = 0;
 | |
|     // 循环求和 1, 2, ..., n-1, n
 | |
|     for i in 1..=n {
 | |
|         res += i;
 | |
|     }
 | |
|     res
 | |
| }
 | |
| 
 | |
| /* while 循环 */
 | |
| fn while_loop(n: i32) -> i32 {
 | |
|     let mut res = 0;
 | |
|     let mut i = 1; // 初始化条件变量
 | |
| 
 | |
|     // 循环求和 1, 2, ..., n-1, n
 | |
|     while i <= n {
 | |
|         res += i;
 | |
|         i += 1; // 更新条件变量
 | |
|     }
 | |
|     res
 | |
| }
 | |
| 
 | |
| /* while 循环(两次更新) */
 | |
| fn while_loop_ii(n: i32) -> i32 {
 | |
|     let mut res = 0;
 | |
|     let mut i = 1; // 初始化条件变量
 | |
| 
 | |
|     // 循环求和 1, 4, 10, ...
 | |
|     while i <= n {
 | |
|         res += i;
 | |
|         // 更新条件变量
 | |
|         i += 1;
 | |
|         i *= 2;
 | |
|     }
 | |
|     res
 | |
| }
 | |
| 
 | |
| /* 双层 for 循环 */
 | |
| fn nested_for_loop(n: i32) -> String {
 | |
|     let mut res = vec![];
 | |
|     // 循环 i = 1, 2, ..., n-1, n
 | |
|     for i in 1..=n {
 | |
|         // 循环 j = 1, 2, ..., n-1, n
 | |
|         for j in 1..=n {
 | |
|             res.push(format!("({}, {}), ", i, j));
 | |
|         }
 | |
|     }
 | |
|     res.join("")
 | |
| }
 | |
| 
 | |
| /* Driver Code */
 | |
| fn main() {
 | |
|     let n = 5;
 | |
|     let mut res;
 | |
| 
 | |
|     res = for_loop(n);
 | |
|     println!("\nfor 循环的求和结果 res = {res}");
 | |
| 
 | |
|     res = while_loop(n);
 | |
|     println!("\nwhile 循环的求和结果 res = {res}");
 | |
| 
 | |
|     res = while_loop_ii(n);
 | |
|     println!("\nwhile 循环(两次更新)求和结果 res = {}", res);
 | |
| 
 | |
|     let res = nested_for_loop(n);
 | |
|     println!("\n双层 for 循环的遍历结果 {res}");
 | |
| }
 |