কম্পিউটার

C++ এ n-এর নিকটতম এবং m দ্বারা বিভাজ্য সংখ্যাটি খুঁজুন


ধরুন আমাদের দুটি পূর্ণসংখ্যা n এবং m আছে। আমাদের n-এর নিকটতম সংখ্যাটি খুঁজে বের করতে হবে এবং m দ্বারা ভাগ করতে হবে। যদি এই ধরনের একাধিক সংখ্যা থাকে, তাহলে সর্বাধিক পরম মান আছে এমন সংখ্যাটি দেখান। যদি n সম্পূর্ণরূপে m দ্বারা বিভাজ্য হয়, তাহলে n ফিরুন। তাই যদি n =13, m =4, তাহলে আউটপুট 12 হয়।

এটি সমাধান করার জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করতে পারি -

  • q :=n/m, এবং n1 :=m*q দিন
  • যদি n * m> 0 হয়, তাহলে n2 :=m * (q + 1), অন্যথায় n2 :=m * (q - 1)
  • যদি |n – n1| <|n – n2|, তারপর n1 ফেরত দিন, অন্যথায় n2

উদাহরণ

#include<iostream>
#include<cmath>
using namespace std;
int findClosest(int n, int m) {
   int q = n / m;
   int n1 = m * q;
   int n2 = (n * m) > 0 ? (m * (q + 1)) : (m * (q - 1));
   if (abs(n - n1) < abs(n - n2))
      return n1;
   return n2;
}
int main() {
   int n = 13, m = 4;
   cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl;
      n = 0; m = 8;
   cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl;
      n = 18; m = -7;
   cout << "Closest for n = " << n << ", and m = " << m << ": " << findClosest(n, m) << endl;
}

আউটপুট

Closest for n = 13, and m = 4: 12
Closest for n = 0, and m = 8: 0
Closest for n = 18, and m = -7: 21

  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে ফুটবলে পেন্টাগন এবং হেক্সাগনের সংখ্যা খুঁজুন