কম্পিউটার

C++ এ x^1, x^2, ....., x^n থেকে প্রাপ্ত মানের সংখ্যার একটি ফ্রিকোয়েন্সি বিন্যাস তৈরি করুন


ধরুন আমাদের দুটি পূর্ণসংখ্যা 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]

  1. অন্য অ্যারের থেকে ছোট মান আছে এমন একটি অ্যারের C++ পারমুটেশন

  2. C++ প্রোগ্রাম প্রদত্ত রেঞ্জ থেকে সমস্ত সংখ্যাকে শব্দে রূপান্তর করতে

  3. 5 দ্বারা বিভাজ্য N ডিজিটের সংখ্যাগুলি C++ এ M সংখ্যা থেকে গঠিত

  4. C++ এ এর ​​প্রিঅর্ডার ট্রাভার্সাল থেকে সম্পূর্ণ কে-আরি ট্রি তৈরি করুন