কম্পিউটার টিউটোরিয়াল

সি++-এ সংখ্যা N-এর সব বেস (২ থেকে N/2) এ ডিজিটের যোগফল


একটি সংখ্যা N দেওয়া আছে। N কে বেস ২ থেকে N/2 পর্যন্ত কনভার্ট করে প্রতিটি বেসে এর ডিজিটগুলোর যোগফল বের করতে হবে।

ইনপুট

N = 5

আউটপুট

2

ব্যাখ্যা — বেস ২: 5 = 101₂, ডিজিট যোগফল = 1+0+1 = 2।

পদ্ধতি

  • বেস ২ থেকে N/2 পর্যন্ত লুপ করুন।
  • প্রতিটি বেসে 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, sum = 0;
    CalcSumOfBaseDigits(N, sum);
    cout << "Sum of digits of " << N << " in bases 2 to " << N/2 << " = " << 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. C++-এ সিরিজের যোগফল 1/1! + 2/2! + 3/3! + 4/4! + ... n/n!

  4. C++-এ দেওয়া সংখ্যার ডিজিটগুলোর যোগফল বের করা