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

หมายเลข Adam ใน C++

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

Adam number คือเลข n ที่เมื่อยกกำลังสองของ n และยกกำลังสองของตัวเลขที่กลับลำดับของ n แล้วผลลัพธ์ทั้งสองเป็นตัวเลขที่กลับลำดับของกันและกัน ตัวอย่างเช่น เลข 13 ตัวเลขกลับคือ 31 13^2 = 169 และ 31^2 = 961 ซึ่ง 169 และ 961 เป็นตัวเลขที่กลับลำดับกัน ดังนั้น 13 จึงเป็น Adam number

ขั้นตอนการตรวจสอบ Adam number:

  • รับเลข n
  • กลับลำดับเลขและเก็บใน m
  • หาค่ากำลังสองของ 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; // ตัดหลักสุดท้ายและนำมาบวกในผลลัพธ์
        num /= 10; // ลดค่าตัวเลข
    }
    return res;
}

bool checkAdamNumber(int num) {
    int rev_num = reverseNumber(num);
    // หาค่ากำลังสองของเลขและเลขที่กลับลำดับ
    int sq_num = num * num;
    int sq_rev_num = rev_num * rev_num;
    // ถ้า sq_num และ sq_rev_num เป็นตัวเลขที่กลับลำดับกัน แสดงว่าเป็น Adam Number
    if (sq_num == reverseNumber(sq_rev_num)) {
        return true;
    }
    return false;
}

int 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";
    }
    return 0;
}

ผลลัพธ์

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