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

C++-এ একটি সংখ্যা d যোগ করার পর ন্যূনতম সম্ভাব্য অঙ্কের যোগফল খুঁজুন

এই সমস্যায়, আমাদের দুটি সংখ্যা n এবং d দেওয়া আছে। আমাদের কাজ হলো একটি সংখ্যা d যোগ করার পর ন্যূনতম সম্ভাব্য অঙ্কের যোগফল খুঁজে বের করা।

সমস্যা বিবরণ

আমাদের d-এর k-এন্টিমoltip gুণফল n-এ যোগ করে অঙ্কের যোগফল ন্যূনতম করতে হবে।

উদাহরণ

ইনপুট

n = 5230, d = 54

আউটপুট

1

ব্যাখ্যা

সংখ্যাটি হবে 5230 + (2*54) = 5338

সমাধানের পদ্ধতি

সমস্যাটি সমাধানের একটি সহজ পদ্ধতি হলো ১ থেকে ৮ পর্যন্ত d-এর সব গুণফল চেক করা, কারণ ৯ম গুণফলে অঙ্কের যোগফল পুনরাবৃত্তি হয়। এটি মডুলো ৯-র ওপর ভিত্তি করে যা অঙ্কের যোগফল ফেরত দেয়। তাই a+d*(9k+l) মডুলো ৯, a+d*l মডুলো ৯-র সমতুল্য। অতএব আমরা l*d-এর সব গুণফল ১ থেকে ৮ পর্যন্ত চেক করব এবং ন্যূনতমটি ফেরত দিব।

প্রোগ্রামে একটি উন্নতি করা যায় এই তথ্য ব্যবহার করে যে অঙ্কের যোগফল কখনো ১-এর চেয়ে কম হয় না, তাই যদি অঙ্কের যোগফল ১ পাওয়া যায়, তবে সেটি অবিলম্বে ফেরত দিয়ে দেওয়া যায়।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

int calcDigitSum(int n) {
    int i = n % 9;
    if (i == 0)
        return 9;
    else
        return i;
}

int findMinDigitSum(int n, int d) {
    int minSum = 10;
    int number;
    for (int i = 1; i < 9; i++) {
        number = (n + i * d);
        minSum = min(minSum, calcDigitSum(number));
        if(minSum == 1)
            return minSum;
    }
    return minSum;
}

int main() {
    int n = 5230, d = 54;
    cout << "The minimum possible digitsum after adding the number is " << findMinDigitSum(n, d);
    return 0;
}

আউটপুট

The minimum possible digitsum after adding the number is 1
  1. ম্যাট্রিক্সে ক্যাবিটির সংখ্যা বের করা C++-তে

  2. সি++ প্রোগ্রাম: নির্দিষ্ট অঙ্ক d ধারণকারী সংখ্যাগুলো খুঁজে বের করা

  3. C++ ব্যবহার করে N কে প্যালিনড্রোম সংখ্যাগুলোর যোগফল হিসেবে প্রকাশের ন্যূনতম প্যালিনড্রোম সংখ্যা

  4. C++ ব্যবহার করে একটি সংখ্যার ফ্যাক্টরের ন্যূনতম যোগফল বের করা