เลขเดมโล (Demlo numbers) คือเลขพาลินโดรมที่ได้จากการยกกำลังสองของตัวเลขที่ประกอบด้วยเลข 1 ซ้ำกัน (เช่น 11, 111, 1111) โดยที่ตัวเลขต้องมีความยาวไม่เกิน 10 หลัก
แนวคิดการแก้ปัญหา
รูปแบบของเลขเดมโลจะเป็นดังนี้:
- 11² = 121
- 111² = 12321
- 1111² = 1234321
สามารถสร้างได้โดยการนับขึ้นจาก 1 ถึงจำนวนหลักของตัวเลข 1 แล้วตามด้วยการนับลง
ตัวอย่างโค้ด C++
#include <iostream>
#include <string>
using namespace std;
int main() {
string demNum = "1111";
string square = "";
// นับขึ้น: 1, 2, 3, 4
for(int i = 1; i <= demNum.length(); i++) {
square += char(i + '0');
}
// นับลง: 3, 2, 1
for (int i = demNum.length() - 1; i >= 1; i--) {
square += char(i + '0');
}
cout << square;
return 0;
}
ผลลัพธ์
1234321
หมายเหตุ: วิธีนี้ใช้ได้เฉพาะกับตัวเลขที่ประกอบด้วยเลข 1 เท่านั้น และความยาวไม่เกิน 10 หลัก เนื่องจากจะเกินขอบเขตของตัวแปร integer ทั่วไป