ในส่วนนี้เราจะดูวิธีเขียนโปรแกรมตรวจสอบว่าเลขที่กำหนดเป็นหมายเลข 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