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

เลขเดมโล (Demlo Number) - กำลังสองของตัวเลข 11...1 ใน C++

เลขเดมโล (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 ทั่วไป