المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:مرحله ی اول:دوره ی ۲۸:سوال ۲۱

سوال ۲۱

حافظه‌ی سلطان ۲۰ خانه با شماره‌های ۱ تا ۲۰ دارد. خانه‌ی $i$ ام حافظه را با $A[i]$ نشان می‌دهیم. در ابتدا در تمام خانه‌های حافظه، عدد ۱ نوشته شده است. الگوریتم زیر را اجرا می‌کنیم:

  1. مقدار $ans$ را برابر ۰ قرار بده.
  2. اگر مقدار تمام خانه‌های حافظه‌ی سلطان برابر ۰ بود به خط ۱۵ برو.
  3. مقدار $ans$ را یک واحد زیاد کن.
  4. مقدار $index$ را برابر ۱ قرار بده.
  5. اگر $index>20$ بود به خط ۲ برو.
  6. اگر $A[index]=0$ بود به خط ۱۰ برو.
  7. مقدار $A[index]$ را برابر ۰ کن.
  8. مقدار $index$ را دو واحد زیاد کن.
  9. به خط ۵ برو.
  10. مقدار $tmp$ را برابر ۰ قرار بده.
  11. اگر $index<20$ بود، مقدار $tmp$ را برابر $A[index+1]$ قرار بده.
  12. مقدار $A[index]$ را برابر $tmp$ قرار بده.
  13. مقدار $index$ را یک واحد زیاد کن.
  14. به خط ۵ برو.
  15. پایان

پس از پایان الگوریتم، مقدار $ans$ چیست؟

  1. ۲۰
  2. ۱۰
  3. ۵
  4. ۳
  5. الگوریتم هیچ‌ گاه تمام نخواهد شد

پاسخ

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

در سری یکم مقادیر خانه‌های با شماره‌ی فرد برابر ۰ می‌شود. در سری دوم مقدار $A[1]$ برابر ۱ شده و بقیه‌ی خانه‌ها ۰ می‌شوند. در سری سوم مقدار $A[1]$ نیز ۰ شده و کار تمام می‌شود.


ابزار صفحه