ในปัญหานี้ เราได้ธาตุ N เราต้องหาเลข N ในระบบตัวเลขที่มีเพียง 3 และ 4
ระบบตัวเลขประกอบด้วยองค์ประกอบ 3, 4, 33, 34, 43, 44, 333, 334, 343, 344, …
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
N = 6
ผลลัพธ์
44
คำอธิบาย
ตัวเลขของระบบตัวเลข ได้แก่ − 3, 4, 33, 34, 43, 44...
แนวทางการแก้ปัญหา
ระบบตัวเลขคล้ายกับระบบเลขฐานสอง แต่ตัวเลข 0 ถูกแทนที่ด้วย 3 และหมายเลข 1 ถูกแทนที่ด้วย 4
สมมติว่านี่เป็น sBinary
ดังนั้น เลข N ที่ N คือ (n-1) ของการแปลง Sbinary
ด้วยความรู้นี้ เราสามารถแก้ปัญหาได้โดยการหาค่าเทียบเท่าไบนารีของ (N-1) แล้วบวกเลขฐานสองแต่ละหลักที่หาได้ 3
วิธีการแปลงทศนิยมเป็นไบนารี
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
ตัวอย่าง
#include<iostream> using namespace std; void findNThTermNumberSystem(int N) { if(N == 1 || N == 2) { cout<<(N-1) + 3; return; } N -= 1; findNThTermNumberSystem(N/2); cout<<((N % 2) + 3); } 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