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

อดัมนัมเบอร์ในภาษา C++


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

เลขอาดัมเป็นตัวเลขที่บอกว่า n แล้วถ้ากำลังสองของ n และกำลังสองของส่วนกลับของ n กลับด้านกัน ตัวเลขนั้นก็คือเลขอาดัม ตัวอย่างเช่น ให้เราพิจารณาตัวเลข 13 ที่กลับด้านคือ 31 จากนั้นกำลังสองของ 13 คือ 169 และกำลังสองของ 31 คือ 961 169 และ 961 อยู่ตรงข้ามกัน ดังนั้นเลข 13 จึงเป็นเลขอาดัม

ขั้นตอนในการตรวจสอบว่าหมายเลขที่กำหนดเป็นหมายเลขอดัมหรือไม่ −

  • เอาเลข n
  • ย้อนกลับตัวเลขและเก็บไว้ใน m
  • รับ Square of n และเก็บไว้ใน sq_n
  • รับสแควร์ของ m และเก็บไว้ใน sq_m
  • ตรวจสอบว่า sq_n และด้านหลังของ sq_m เหมือนกันหรือไม่

ตัวอย่าง

#include<iostream>
using namespace std;
int reverseNumber(int num) {
   int res = 0;
   while(num != 0) {
      res = res * 10 + num % 10; //cut last digit and add into the result
      num /= 10; //reduce the number
   }
   return res;
}
bool checkAdamNumber(int num) {
   int rev_num = reverseNumber(num);
   //get the square of the number and the reverse number
   int sq_num = num * num;
   int sq_rev_num = rev_num * rev_num;
   //if the sq_num and sq_rev_num are reverse of each other, then they are Adam Number.
   if(sq_num == reverseNumber(sq_rev_num)) {
      return true;
   }
   return false;
}
main() {
   int num;
   cout << "Enter a number to check whether it is Adam number or not:";
   cin << num;
   if(checkAdamNumber(num)) {
      cout << "The number is an Adam number";
   } else {
      cout << "The number is not an Adam number";
   }
}

ผลลัพธ์

Enter a number to check whether it is Adam number or not:13
The number is an Adam number

ผลลัพธ์

Enter a number to check whether it is Adam number or not:25
The number is not an Adam number