Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

C++ โปรแกรมหาเลขยกกำลังสอง?


ตรวจสอบว่าตัวเลขที่กำหนดเป็นยกกำลัง 2 หรือไม่ ก่อนอื่นให้ตรวจสอบด้านล่างว่าตัวเลขใดเป็นเลขยกกำลังสองหรือไม่ รหัสนี้จะตรวจสอบว่าตัวเลขเป็นเลขคี่แล้วหารมันพร้อมกันจนกลายเป็น 0 หรือเลขคี่ หากกลายเป็น 0 แสดงว่าเป็นกำลัง 2 ไม่เช่นนั้นจะไม่ใช่

ทางเลือกที่ดีกว่าคือการบันทึกหมายเลข หากเป็นจำนวนเต็ม n จะเป็นกำลัง 2 อย่างอื่นไม่ใช่ ตัวเลขที่ยกกำลัง 2

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 ...
22 = 4
25 = 32
210 = 1024


Input: 8
Output: Number is power of 2

คำอธิบาย

วิธีง่ายๆ คือ นำบันทึกของตัวเลขบนฐาน 2 และถ้าคุณได้จำนวนเต็ม ตัวเลขนั้นจะเป็นยกกำลัง 2

โดยการหาร N ซ้ำๆ ด้วย 2 ถ้า N เป็นจำนวนคู่ ถ้ามันจบลงที่ 1 แล้ว N จะเป็นกำลังของ 2

ตัวอย่าง

#include <iostream>
using namespace std;
int main() {
   int n=8;
   if(n>0) {
      while(n%2 == 0) {
         n/=2;
      }
      if(n == 1) {
         cout<<"Number is power of 2"<<endl;
      }
   }
   if(n == 0 || n != 1) {
      cout<<"Number is not power of 2"<<endl;
   }
   return 0;
}