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

หาตัวเลขตัวที่ N ในระบบเลขฐาน 3 และ 4 ด้วย C++


ภาพรวมปัญหา

ระบบเลขที่ใช้ได้แค่ 3 และ 4: 3, 4, 33, 34, 43, 44, 333, 334, 343, 344, ...

หาตัวเลขตัวที่ N

ตัวอย่าง

อินพุต

N = 6

เอาต์พุต

44

วิธีแก้ปัญหา

คล้าย Binary แต่มัป 0→3, 1→4

ตัวที่ N = (N-1) ในระบบ "S-Binary" (3/4 Binary)

โค้ดตัวอย่าง (Recursive)

#include <iostream>
using namespace std;

void findNThTermNumberSystem(int N) {
    if (N == 1 || N == 2) {
        cout << (N - 1) + 3;  // 3 หรือ 4
        return;
    }
    N -= 1;
    findNThTermNumberSystem(N / 2);
    cout << ((N % 2) + 3);  // 0→3, 1→4
}

int main() {
    int N = 12;
    cout << N << "th term of the number system is ";
    findNThTermNumberSystem(N);
    return 0;
}

เอาต์พุต

12th term of the number system is 434

สรุป

แปลง N-1 เป็นไบนารี แล้วมัป 0→3, 1→4 ใช้ Recursion หรือ Loop ได้ทั้งคู่