এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা 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