মান লোয়া দুটি পূর্ণসংখ্যা x এবং n। আমাদের এমন একটি অ্যারে বের করতে হবে যেটিতে ইন্ডেক্স নম্বরগুলোর ফ্রিকোয়েন্সি থাকবে (x¹, x²,… x^(n – 1), x^n)-এ আবির্ভূত। তাই যদি x = 15 এবং n = 3 হয়, তবে আউটপুট হবে [0, 1, 2, 2, 0, 3, 0, 1, 0, 0]। কারণ我们知道 x¹ থেকে xⁿ এর মানগুলো হলো 15, 225 এবং 3375। তাই ফ্রিকোয়েন্সি অ্যারে হলো 0, 1, 2, 2, 0, 3, 0, 1, 0, 0
এটি সমাধানের জন্য আমরা নিচের ধাপগুলো অনুসরণ করব −
ফ্রিকোয়েন্সি কাউন্ট অ্যারে মেইনটেইন করুন ০ থেকে ৯ ডিজিটের কাউন্ট সংরক্ষণের জন্য।
x¹ থেকে xⁿ-এর প্রতিটি ডিজিট ট্রাভার্স করুন। প্রতিটি ডিজিটের জন্য ফ্রিকোয়েন্সি কাউন্ট অ্যারেতে সংশ্লিষ্ট ইন্ডেক্সে ১ যোগ করুন
অ্যারে ডিসপ্লে করুন।
উদাহরণ
#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]