سوال ۲۱
حافظهی سلطان ۲۰ خانه با شمارههای ۱ تا ۲۰ دارد. خانهی
$i$
ام حافظه را با
$A[i]$
نشان میدهیم. در ابتدا در تمام خانههای حافظه، عدد ۱ نوشته شده است. الگوریتم زیر را اجرا میکنیم:
مقدار $ans$ را برابر ۰ قرار بده.
اگر مقدار تمام خانههای حافظهی سلطان برابر ۰ بود به خط ۱۵ برو.
مقدار $ans$ را یک واحد زیاد کن.
مقدار $index$ را برابر ۱ قرار بده.
اگر $index>20$ بود به خط ۲ برو.
اگر $A[index]=0$ بود به خط ۱۰ برو.
مقدار $A[index]$ را برابر ۰ کن.
مقدار $index$ را دو واحد زیاد کن.
به خط ۵ برو.
مقدار $tmp$ را برابر ۰ قرار بده.
اگر $index<20$ بود، مقدار $tmp$ را برابر $A[index+1]$ قرار بده.
مقدار $A[index]$ را برابر $tmp$ قرار بده.
مقدار $index$ را یک واحد زیاد کن.
به خط ۵ برو.
پایان
پس از پایان الگوریتم، مقدار $ans$ چیست؟
۲۰
۱۰
۵
۳
الگوریتم هیچ گاه تمام نخواهد شد
پاسخ
گزینهی ۴ درست است.
در سری یکم مقادیر خانههای با شمارهی فرد برابر ۰ میشود. در سری دوم مقدار
$A[1]$
برابر ۱ شده و بقیهی خانهها ۰ میشوند. در سری سوم مقدار
$A[1]$
نیز ۰ شده و کار تمام میشود.