تمرین: دنباله Collatz
The Collatz Sequence is defined as follows, for an arbitrary n1 greater than zero:
- اگر ni = ۱ باشد، دنباله (sequence) در ni پایان مییابد.
- اگر ni زوج باشد، آنگاه ni+۱ = ni/۲.
- اگر ni فرد باشد، آنگاه ni+۱ = ۳ * ni + ۱.
به عنوان مثال، با شروع از ni = ۳:
- ۳ فرد است، پس n2 = ۳ * ۳ + ۱ = 10;
- ۱۰ زوج است، پس n3 = ۱۰ / ۲ = ۵;
- ۵ فرد است، پس n4 = ۳ * ۵ + ۱ = 16;
- ۱۶ زوج است، پس n5 = ۱۶ / ۲ = 8;
- ۸ زوج است، پس n6 = ۸ / ۲ = 4;
- ۴ زوج است، پس n7 = ۴ / ۲ = ۲;
- ۲ زوج است، پس n۸ = ۱; و
- دنباله به پایان میرسد.
یک تابع بنویسید تا طول دنباله Collatz برای یک n اولیه داده شده را محاسبه کند.
/// Determine the length of the collatz sequence beginning at `n`. fn collatz_length(mut n: i32) -> u32 { todo!("این را پیادهسازی کن") } fn main() { todo!("این را پیادهسازی کن") }