Problem
آسمانخراش دارای طبقات n
است. معلوم است که اگر یک توپ شیشه ای را از طبقه شماره p
بیندازید و توپ بشکند، اگر توپی را از طبقه شماره p+1
بیاندازید، آن نیز می شکند. . همچنین مشخص است که وقتی از طبقه آخر پرتاب می شود، توپ همیشه می شکند.
شما می خواهید حداقل تعداد طبقه را تعریف کنید که باعث شکسته شدن توپ در هنگام سقوط می شود. برای آزمایش، شما دو توپ دارید. شما می توانید همه آنها را تقسیم کنید، اما در نتیجه نهایی باید از این تعداد کاملا مطمئن باشید.
تعیین کنید که چند پرتاب برای حل این مشکل کافی است.
ورودی
برنامه تعداد طبقات آسمان خراش را به عنوان ورودی دریافت می کند n.
خروجی
لازم است کوچکترین تعداد پرتابها را چاپ کنید، که همیشه میتوانید مشکل را حل کنید.
توجه
به مثال اول نظر دهید. باید توپ را از طبقه دوم پرتاب کنید. اگر بشکند، توپ دوم را از طبقه 1 پرتاب می کنیم و اگر نشکند، توپ را از طبقه 3 پرتاب می کنیم.
نکات
1. اگر فقط یک توپ وجود دارد، چه کاری باید انجام دهید؟
2. بگذارید دو توپ باشد و یک توپ را از طبقه شماره k
پرتاب کنیم. بسته به اینکه توپ بشکند یا نه، چگونه عمل خواهیم کرد؟
3. فرض کنید
f(n)
حداقل تعداد پرتاب های مورد نیاز برای تعیین طبقه مورد نظر باشد اگر آسمان خراش دارای طبقه
n
باشد.
f(n)
را بر حسب مقادیر
f(a)
برای مقادیر کوچکتر
a
بیان کنید.
نمونهها
<سر>
# |
ورودی |
خروجی |
<بدن>
1 |
4 |
2 |
2 |
7 |
3 |
Запрещенные операторы: for
; while
; until