تمرین: دنباله 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 اولیه داده شده را محاسبه کند.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX