কম্পিউটার টিউটোরিয়াল

শুধু 4 ও 7 ডিজিট দিয়ে সিরিজে n-তম এলিমেন্ট খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা N দেওয়া আছে, যা 4 এবং 7 শুধু দিয়ে বানানো সংখ্যা সিরিজকে নির্দেশ করে।

সিরিজটি: 4, 7, 44, 47, 74, 77, …

কাজ হল শুধু 2 ডিজিট (4 এবং 7) দিয়ে সিরিজে n-তম এলিমেন্ট বের করা।

উদাহরণ

ইনপুট

N = 4

আউটপুট

47

ব্যাখ্যা

সিরিজটি: 4, 7, 44, 47, …

সমাধানের পদ্ধতি

এই সমস্যার সহজ সমাধান হল Nতম নম্বর পর্যন্ত সিরিজ তৈরি করা। এটা সিম্পল: যদি করেন্ট নম্বারের লাস্ট ডিজিট 7 হয়, তবে আগের এবং পরের নম্বরের লাস্ট ডিজিট 4 হবে।

সুতরাং, আমরা 1st এবং 2nd নম্বর থেকে শুরু করে পরের এলিমেন্টে যাব।

এ জন্য, আমরা একটি অ্যারে series[n+1] তৈরি করব।

ইন্ডেক্স series[1]-এ 4 রাখুন
ইন্ডেক্স series[2]-এ 7 রাখুন

তারপর N পর্যন্ত সাকসেসিভ ভ্যালু বের করব দেওয়া ইন্ডেক্স i-এর জন্য:

যদি i বিজোড় হয়, series[i] = series[i/2]×10 + 4
যদি i জোড় হয়, series[i] = series[(i/2)-1]×10 + 7

n ইটারেশনের পর series[n]-এ থাকা ভ্যালু রিটার্ন করুন।

প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

int findNthSeriesElement(int N) {
    int series[N+1];
    series[1] = 4;
    series[2] = 7;
    
    for (int i = 3; i <= N; i++) {
        if (i % 2 != 0)
            series[i] = series[i/2] * 10 + 4;
        else
            series[i] = series[(i/2) - 1] * 10 + 7;
    }
    
    return series[N];
}

int main() {
    int N = 9;
    cout << "The " << N << "th element of the array is " << findNthSeriesElement(N);
    return 0;
}

আউটপুট

The 9th element of the array is 474
  1. C++-এ সিরিজ 1, 2, 11, 12, 21...-এর N-তম পদ বের করার প্রোগ্রাম

  2. শুধু ৩ ও ৮ ডিজিট দিয়ে সংখ্যা তৈরি করা C++-এ

  3. ৪ ও ৭ ডিজিট দিয়ে ন্যূনতম লাকি নম্বর (নির্দিষ্ট সম) C++-তে

  4. Stern's Diatomic Series-এর nth টার্ম (C++)