কম্পিউটার

C++ এ 2 থেকে N/2 পর্যন্ত সমস্ত বেসে লেখা N সংখ্যার অঙ্কের যোগফল


এই সমস্যায়, আমাদের একটি সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল 2 থেকে N/2 পর্যন্ত বেসে N সংখ্যার অঙ্কের যোগফল খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।

সুতরাং, আমাদের সংখ্যার ভিত্তিটিকে 2 থেকে N/2 তে সমস্ত বেসে রূপান্তর করতে হবে অর্থাৎ n =9 এর জন্য, বেসগুলি হবে 2, 3, 4। এবং এই বেসের সমস্ত অঙ্কের যোগফল বের করতে হবে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

N = 5

আউটপুট

2

ব্যাখ্যা

base from 2 to N/2 is 2.
52 = 101, sum of digits is 2.

এই সমস্যাটি সমাধান করার জন্য, আমরা 2 থেকে N/2 পর্যন্ত প্রতিটি সংখ্যাকে ভিত্তি হিসাবে নিই। এবং তারপর অঙ্কের যোগফল নির্ণয় করতে, আমরা বারবার N কে ভিত্তি দিয়ে ভাগ করব অর্থাৎ N =N/বেস, এবং অবশিষ্ট মান যোগফলের সাথে যোগ করব। এবং তারপর ফলাফল পেতে প্রতিটি বেসের জন্য পাওয়া সমষ্টি মান যোগ করুন।

উদাহরণ

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম

#include <iostream>
using namespace std;
int findBaseSum(int n, int base, int &sum){
   while (n > 0) {
      sum += n % base;
      n /= base;
   }
return sum;
}
void CalcSumOfBaseDigits(int n, int &sum){
   for (int base = 2; base <= n / 2; base++)
      findBaseSum(n, base, sum);
}
int main(){
   int N = 11;
   int sum = 0;
   CalcSumOfBaseDigits(N, sum);
   cout<<"The sum of digits of "<<N<<" written in all bases from 2 to "<<(N/2)<<" is "<<sum;
   return 0;
}

আউটপুট

The sum of digits of 11 written in all bases from 2 to 5 is 14

  1. C++ এ N সংখ্যা দ্বারা গঠিত N/2 জোড়ার যোগফলের বর্গক্ষেত্রের যোগফলকে ছোট করুন

  2. একটি প্রদত্ত সংখ্যা C++ এ তার সংখ্যার ফ্যাক্টরিয়ালের যোগফলকে ভাগ করে কিনা তা পরীক্ষা করুন

  3. একটি সিরিজ 1/1 এর যোগফল খুঁজে পেতে C++ প্রোগ্রাম! + 2/2! +3/3! + 4/4! +…… n/n!

  4. একটি প্রদত্ত সংখ্যার সংখ্যা যোগ করার জন্য C++ প্রোগ্রাম