Solution 2
This commit is contained in:
		
							
								
								
									
										29
									
								
								src/bin/problem_2.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/bin/problem_2.rs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					fn main() {
 | 
				
			||||||
 | 
					    let result = fibonacci_even_sum(4_000_000);
 | 
				
			||||||
 | 
					    println!("Result: {}", result);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn fibonacci_even_sum(limit: i64) -> i64 {
 | 
				
			||||||
 | 
					    let mut previous = (1, 2);
 | 
				
			||||||
 | 
					    let mut sum = 2;
 | 
				
			||||||
 | 
					    while previous.0 + previous.1 < limit {
 | 
				
			||||||
 | 
					        previous = (previous.1, previous.0 + previous.1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if previous.1 % 2 == 0 {
 | 
				
			||||||
 | 
					            sum += previous.1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return sum;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[cfg(test)]
 | 
				
			||||||
 | 
					mod tests {
 | 
				
			||||||
 | 
					    use crate::fibonacci_even_sum;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[test]
 | 
				
			||||||
 | 
					    fn it_works() {
 | 
				
			||||||
 | 
					        let result = fibonacci_even_sum(100);
 | 
				
			||||||
 | 
					        assert_eq!(result, 44);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user