سوال ۱۱

منظور از $f(x)$ باقی‌مانده‌ی تقسیم عدد صحیح $x$ بر ۲ است؛ برای مثال $ f(15) = 1$ و $f(10) = 0$ است. فرض کنید عددی صحیح مانند $x$ داریم. الگوریتم زیر را در نظر بگیرید:

  • مقدار $k$ را برابر ۰ و مقدار $last$ را برابر $-1$ قرار بده.
  • اگر $f(x) = 0$ بود، به مرحله‌ی ۵ برو.
  • اگر $last \neq 1$ بود، مقدار $k$ را یکی اضافه کن.
  • مقدار $last$ را برابر ۱ قرار بده و به مرحله‌ی ۷ برو.
  • اگر $last \neq 0$ بود، مقدار $k$ را یکی اضافه کن.
  • مقدار $last$ را برابر ۰ قرار بده.
  • مقدار $x$ را برابر $\lfloor \frac{x}{2} \rfloor$ قرار بده.
  • اگر $x > 0$ بود، به مرحله‌ی ۲ برو.
  • مقدار $k$ را به عنوان خروجی اعلام کن.
  • پایان.

اگر الگوریتم بالا را به ازای تمام مقادیر $0 \leq x < 1024$ انجام دهیم و خروجی نهایی آن‌ها را با یکدیگر جمع کنیم، حاصل برابر با چه عددی است؟

  1. ۵۱۲۱
  2. ۲۵۶۰
  3. ۵۶۳۲
  4. ۵۱۲۰
  5. ۴۶۰۸

پاسخ

گزینه‌ی ۱ درست است.