ধরুন আমাদের দুটি পূর্ণসংখ্যা x এবং n আছে। আমাদের অ্যারেটি খুঁজে বের করতে হবে যাতে এটিতে (x^1, x^2,… x^(n – 1), x^n) সূচক সংখ্যার ফ্রিকোয়েন্সি থাকে। সুতরাং x =15 এবং n =3 হলে আউটপুট হবে [0, 1, 2, 2, 0, 3, 0, 1, 0, 0]। যেমন আমরা জানি যে x^1 থেকে x^n, মানগুলি হল 15, 225 এবং 3375। সুতরাং ফ্রিকোয়েন্সি অ্যারে হল 0, 1, 2, 2, 0, 3, 0, 1, 0, 0
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
0 থেকে 9 সংখ্যার সংখ্যা সংরক্ষণ করতে ফ্রিকোয়েন্সি গণনা অ্যারে বজায় রাখুন।
-
x^1 থেকে x^n প্রতিটি অঙ্কের মধ্য দিয়ে অতিক্রম করুন। প্রতিটি অঙ্কের জন্য ফ্রিকোয়েন্সি গণনা অ্যারেতে সংশ্লিষ্ট সূচকে 1 যোগ করুন
-
অ্যারে প্রদর্শন করুন৷
৷
উদাহরণ
#include <iostream> #include <cmath> using namespace std; void digitCount(double val, long arr[]) { while ((long)val > 0) { long digit = (long)val % 10; arr[(int)digit]++; val = (long)val / 10; } } void generateFreqArray(int x, int n) { long freq_count[10]={0}; for (int i = 1; i <= n; i++){ double val = pow((double)x, (double)i); digitCount(val, freq_count); } cout << "["; for (int i = 0; i <= 9; i++){ cout << freq_count[i] << " "; } cout << "\b]"; } int main() { int x = 15, n = 3; cout << "The frequency array is: "; generateFreqArray(x, n); }
আউটপুট
The frequency array is: [0 1 2 2 0 3 0 1 0 0]