কম্পিউটার

n^x-এ অঙ্কের পুনরাবৃত্ত যোগফল, যেখানে C++ এ n এবং x অনেক বড়


আমাদেরকে 'সংখ্যা' এবং 'এক্স' হিসাবে ধনাত্মক পূর্ণসংখ্যার ভেরিয়েবল দেওয়া হয়েছে। কাজটি হল num^x পুনরাবৃত্তভাবে গণনা করা তারপর একটি ফলাফলের সংখ্যার সংখ্যাগুলি যোগ করা যতক্ষণ না একক সংখ্যা অর্জন না হয় এবং ফলাফলের একক সংখ্যাটি আউটপুট হবে।

আসুন এর জন্য বিভিন্ন ইনপুট আউটপুট পরিস্থিতি দেখি -

ইনপুট − int num =2345, int x =3

আউটপুট − n^x-এ অঙ্কের পুনরাবৃত্ত যোগফল, যেখানে n এবং x খুব বড়:8

ব্যাখ্যা − আমাদের ধনাত্মক পূর্ণসংখ্যার মান দেওয়া হয়েছে num এবং x হিসাবে 2345 এর মান এবং 3 হিসাবে পাওয়ার। প্রথমে, 2345 ^ 3 অর্থাৎ 12,895,213,625 গণনা করুন। এখন, আমরা এই সংখ্যাগুলি যোগ করব যেমন 1 + 2 + 8 + 9 + 5 + 2 + 1 + 3 + 6 + 2 + 5 অর্থাৎ 44। এখন আমরা 4 + 4 অর্থাৎ 8 যোগ করব। যেহেতু আমরা একক সংখ্যা অর্জন করেছি তাই , আউটপুট হল 8।

ইনপুট − int num =3, int x =3

আউটপুট − n^x-এ অঙ্কের পুনরাবৃত্ত যোগফল, যেখানে n এবং x খুব বড়:9

ব্যাখ্যা − আমাদেরকে num এবং x হিসাবে ধনাত্মক পূর্ণসংখ্যার মান দেওয়া হয়েছে যার মান 3 হিসাবে এবং শক্তি 3 হিসাবে। প্রথমে, 3 ^ 3 অর্থাৎ 9 গণনা করুন। যেহেতু আমরা একক সংখ্যা অর্জন করেছি, তাই আউটপুট হল 9 এবং আর কোন গণনার প্রয়োজন নেই।

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • num এবং x হিসাবে একটি পূর্ণসংখ্যা ভেরিয়েবল ইনপুট করুন এবং আরও প্রক্রিয়াকরণের জন্য Recursive_Digit(num, x) ফাংশনে ডেটা পাস করুন।

  • Recursive_Digit(num, x)

    ফাংশনের ভিতরে
    • ভেরিয়েবলকে 'টোটাল' লম্বা হিসাবে ঘোষণা করুন এবং এটিকে ফাংশন total_digits(num) কল করতে সেট করুন যা একটি আর্গুমেন্ট হিসাবে পাস করা একটি সংখ্যার অঙ্কের যোগফল প্রদান করবে।

    • ভেরিয়েবলকে লং টাইপের টেম্প হিসাবে ঘোষণা করুন এবং এটিকে % 6

      পাওয়ার দিয়ে সেট করুন
    • IF মোট =3 বা মোট =6 এবং শক্তি> 1 চেক করুন তারপর 9 দিন।

    • ELSE IF, power =1 তারপর মোট রিটার্ন করুন।

    • ELSE IF, power =0 তারপর 1 দিন।

    • অন্যথায় IF, temp - 0 তারপর কল রিটার্ন to total_digits((long)pow(total, 6))

    • অন্যথায়, total_digits((long)pow(total, temp)) ফেরত দিন।

  • ফাংশনের ভিতরে long total_digits(long num)

    • IF num =0 চেক করুন তারপর 0 দিন। IF চেক করুন, num % 9 =0 তারপর 9 দিন।

    • অন্যথায়, রিটার্ন সংখ্যা % 9

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
long total_digits(long num){
   if(num == 0){
      return 0;
   }
   if(num % 9 == 0){
      return 9;
   }
   else{
      return num % 9;
   }
}
long Recursive_Digit(long num, long power){
   long total = total_digits(num);
   long temp = power % 6;
   if((total == 3 || total == 6) & power > 1){
      return 9;
   }
   else if (power == 1){
      return total;
   }
   else if (power == 0){
      return 1;
   }
   else if (temp == 0){
      return total_digits((long)pow(total, 6));
   }
   else{
      return total_digits((long)pow(total, temp));
   }
}
int main(){
   int num = 2345;
   int x = 98754;
   cout<<"Recursive sum of digit in n^x, where n and x are very large are: "<<Recursive_Digit(num, x);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Recursive sum of digit in n^x, where n and x are very large are: 1

  1. C++ এ একটি খুব বড় সংখ্যায় সমস্ত 3 সংখ্যার পুনরাবৃত্তি সংখ্যা প্রিন্ট করুন

  2. 2 এর ঘাত এবং C++ এ যোগফল N আছে এমন k সংখ্যাগুলি খুঁজুন

  3. দুটি সংখ্যা খুঁজুন যার যোগফল এবং GCD C++ এ দেওয়া আছে

  4. C++ এ কপি এলিশন এবং রিটার্ন মান অপ্টিমাইজেশান কি?