Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn main() {
- let n0:i32 = read();
- let (max, i) = collatz(&mut n0);
- println!("{}", i);
- println!("{}", max);
- }
- fn read<T: std::str::FromStr>() -> T {
- let mut s = String::new();
- std::io::stdin().read_line(&mut s).ok();
- s.trim().parse().ok().unwrap()
- }
- fn collatz(ni:&mut i32) -> (i32,i32) {
- let mut max = 1_i32;
- let mut index = 0_i32;
- match ni.clone() {
- 1_i32 => (max,index),
- _ => {
- while ni.clone() != 1_i32 {
- ni = if *ni % 2_i32 == 0_i32{
- &mut ((*ni) / 2_i32)
- }else{
- &mut(3_i32 * (*ni) + 1_i32)
- };
- if max < ni {max = ni.clone()}
- index = index + 1_i32;
- }
- (max,index)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement