मान लीजिए हमारे पास दो पूर्णांक 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]