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

C++ อดัมนัมเบอร์


หมายเลขอดัม คือจำนวนที่สี่เหลี่ยมจัตุรัสกลับด้านของกำลังสองด้านตรงข้าม

อธิบายแนวคิด – สำหรับตัวเลขที่จะเป็น หมายเลขอดัม , กำลังสองของจำนวนนั้นกลับด้านของกำลังสองของการกลับด้านของตัวเลข มาดูตัวอย่างกัน

12 คือตัวเลข . กำลังสองของ 12 คือ 144 และส่วนหลังของ 12 คือ 21 กำลังสองของการย้อนกลับของ 12 คือ 21 คือ 441 441 คือสิ่งที่ตรงกันข้ามของ 144 ซึ่งก็คือกำลังสองของ 12

อัลกอริธึมในการตรวจสอบว่าตัวเลขเป็นตัวเลขอดัมหรือไม่ −

  • จากจำนวน xy ให้หากำลังสองของตัวเลข (xy) 2 .
  • สำหรับ xy ให้กลับหลักของตัวเลข -> yx
  • ตอนนี้ สำหรับจำนวน yx ให้หากำลังสองของตัวเลข (xy) 2 .
  • กลับหลัก (xy) 2 และประเมินด้วย (yx) 2 .
  • ถ้าเท่ากันทั้งคู่ ก็คือเลขอาดัม

ตัวอย่าง

#include <iostream>
using namespace std;
int reverseDigits(int num) {
   int rev = 0;
   while (num > 0) {
      rev = rev * 10 + num % 10;
      num /= 10;
   }
   return rev;
}
int main() {
   int num = 31;
   cout<<num<<" is ";
   int rev = reverseDigits(num);
   if ( (num*num) == (reverseDigits(rev*rev)) )
      cout << "Adam Number";
   else
      cout << "not an Adam Number";
   return 0;
}

ผลลัพธ์

31 is Adam Number