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

ค้นหาตัวเลขในระบบตัวเลขที่มีเพียง 3 และ 4 ใน C++


ในปัญหานี้ เราได้ธาตุ 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