কম্পিউটার

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


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

সমস্যা বর্ণনা − আমাদের n-এর সাথে d-এর kth গুণফল যোগ করে অঙ্কের যোগফলকে ছোট করতে হবে।

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

ইনপুট

n = 5230, d = 54

আউটপুট

1

ব্যাখ্যা

The number will be 5230 + (2*54) = 5338

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

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

প্রোগ্রামে একটি অগ্রগতি এই সত্যটি ব্যবহার করে করা যেতে পারে যে অঙ্কের যোগফল কখনই 1 এর কম হবে না, তাই যদি আমাদের অঙ্কের যোগফল =1 থাকে তবে আমরা তা ফেরত দেব।

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

উদাহরণ

#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. C++ এ d সংখ্যা আছে এমন সংখ্যাটি খুঁজুন

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

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