برنامه تشخیص عدد توان دو – از صفر تا صد

۱۹۱۳
۱۴۰۲/۰۴/۲۰
۷ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

در این مطلب، روش نوشتن برنامه تشخیص عدد توان دو بیان شده است. یک عدد صحیح مثبت داده شده است. هدف، نوشتن تابعی است که تشخیص دهد آیا این عدد، یک عدد به توان ۲ رسیده است یا خیر. مثال زیر در این راستا قابل توجه است.

برنامه تشخیص عدد توان دو – از صفر تا صدبرنامه تشخیص عدد توان دو – از صفر تا صد
997696
Input : n = 4
Output : Yes
22 = 4

Input : n = 7
Output : No

Input : n = 32
Output : Yes
25 = 32

راهکار اول برای نوشتن برنامه تشخیص عدد توان دو

یک روش ساده برای انجام این کار آن است که لوگ عدد در مبنای ۲ گرفته شود و اگر یک عدد صحیح حاصل شد، بدین معنا است که عدد به توان ۲ رسیده است.

برنامه تشخیص عدد توان ۲ در ++C

برنامه تشخیص عدد توان ۲ در C

برنامه تشخیص عدد توان ۲ در جاوا

برنامه تشخیص عدد توان دو در پایتون ۳

برنامه تشخیص عدد توان دو در #C

برنامه تشخیص عدد توان دو در PHP

خروجی قطعه کد بالا به صورت زیر است.

No
Yes

راهکار دوم برای نوشتن برنامه تشخیص عدد توان دو

راهکار دیگر برای نوشتن برنامه تشخیص عدد توان، تقسیم کردن عدد به دو، به صورت مکرر است. یعنی، n=n2n=\frac{n}{2} به صورت تکرار شونده انجام می‌شود. در هر تکرار، اگر n%2 (باقیمانده تقسیم عدد بر دو) عددی غیر صفر و n برابر با ۱ نباشد، n عددی به توان ۲ نیست. اگر n برابر با ۱ شود، عددی به توان ۲ است.

برنامه تشخیص عدد توان دو در ++C

برنامه تشخیص عدد توان دو در C

برنامه تشخیص عدد توان دو در جاوا

برنامه تشخیص عدد توان دو در پایتون ۳

برنامه تشخیص عدد توان دو در #C

برنامه تشخیص عدد توان دو در PHP

خروجی قطعه کد بالا به صورت زیر است.

No
Yes

روش‌های دیگری نیز برای حل این مساله وجود دارند. همه اعداد در توان ۲، تنها یک بیت ست هستند. بنابراین، با شمارش تعداد ست بیت‌ها، اگر عدد ۱ حاصل شد، عدد در واقع یک عدد به توان ۲ رسیده است.

راهکار سوم برای نوشتن برنامه تشخیص عدد توان دو

در نهایت، یک روش دیگر نیز برای نوشتن برنامه تشخیص عدد توان دو در ادامه بیان شده است. اگر اعداد توان ۲ تقسیم بر ۱ شوند، همه بیت‌های غیر ست پس از تنها بیت ست، ست می‌شوند و بیت ست شده، آنست می‌شود.

برای مثال، دو عدد 4 ( 100) و 16 (10000) در نظر گرفته می‌شود. خروجی زیر پس از کم کردن یک (۱) از عدد، حاصل می‌شود.

3 –> 011
15 –> 01111

بنابراین، اگر n عددی به توان ۲ است، and بیتوایز برای n و n-1، برابر با صفر خواهد بود. می‌توان گفت که n توانی از ۲ است یا بر مبنای مقدار (n&(n-1 نیست. عبارت (n&(n-1 هنگامی که n برابر با صفر باشد کار می‌کند. برای کار با این مورد، عبارت به صورت (!(n& (n&(n-1 خواهد بود. در ادامه، پیاده‌سازی روش بیان شده در زبان‌های برنامه‌نویسی گوناگون ارائه شده است.

برنامه تشخیص عدد توان دو در ++C

برنامه تشخیص عدد توان دو در C

برنامه تشخیص عدد توان دو در جاوا

برنامه تشخیص عدد توان دو در پایتون ۳

برنامه تشخیص عدد توان دو در #C

برنامه تشخیص عدد توان دو در PHP

خروجی قطعه کد بالا به صورت زیر است.

No
Yes

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۴ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
GeeksforGeeks
PDF
مطالب مرتبط
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *