কম্পিউটার

C++ এ প্রদত্ত পরিসরে সমস্ত ভাল সংখ্যা প্রিন্ট করুন


এই সমস্যায়, আমাদের তিনটি মান দেওয়া হয়েছে L, R, এবং d। আমাদের কাজ হল সমস্ত ভাল নম্বর প্রিন্ট করা L থেকে R পরিসরের মধ্যে যেটিতে d এর সংখ্যা হিসাবে থাকে না।

একটি ভাল সংখ্যা এমন একটি সংখ্যা যেখানে প্রতিটি সংখ্যা তার ডানদিকের সংখ্যার যোগফলের চেয়ে বড় (এর থেকে কম উল্লেখযোগ্য বিট)। উদাহরণস্বরূপ, 732 একটি ভাল সংখ্যা, 7> 3+2 এবং 3>2।

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

Input: L = 400 , R = 500 , k = 3
Output: 410, 420, 421

ব্যাখ্যা − 400 থেকে 500 এর মধ্যে ভালো সংখ্যা হল −

410, 420, 421, 430, but we cannot use 3 so 430 is not printed.

এই সমস্যাটি সমাধান করার জন্য, এর জন্য আমরা প্রদত্ত সীমার মধ্যে সমস্ত সংখ্যা পরীক্ষা করব, যেমন L থেকে R, যদি একটি সংখ্যা একটি ভাল সংখ্যা হয় এবং এর কোনো সংখ্যা k এর সমান না হয়, তাহলে এটি প্রিন্ট করুন অন্যথায় এটি ছেড়ে দিন।

ভাল নম্বরের জন্য চেক করুন − আমরা ডান থেকে বামে সংখ্যাটি অতিক্রম করব, এবং একটি যোগফল বজায় রাখব, যেকোন সময়ে যদি যোগফল পরবর্তী সংখ্যার থেকে বড় হয় তাহলে মিথ্যা ফেরত দেবে।

উদাহরণ

চলুন নিচের অ্যালগরিদম −

চিত্রিত করার জন্য প্রোগ্রামটি দেখি
#include<bits/stdc++.h>
using namespace std;
bool isvalidNumber(int n, int d){
   int digit = n%10;
   int sum = digit;
   if (digit == d)
      return false;
   n /= 10;
   while (n){
      digit = n%10;
      if (digit == d || digit <= sum)
         return false;
      else{
         sum += digit;
         n /= 10;
      }
   }
   return 1;
}
void printGoodNumbersLtoR(int L, int R, int d){
   for (int i=L; i<=R; i++){
      if (isvalidNumber(i, d))
         cout << i << " ";
   }
}
int main(){
   int L = 400, R = 600, d = 3;
   cout<<"All good numbers from "<<L<<" to "<<R<<" that do not contain "<<d<<" are :\n";
   printGoodNumbersLtoR(L, R, d);
   return 0;
}

আউটপুট

All good numbers from 400 to 600 that do not contain 3 are −
410 420 421 510 520 521 540

  1. প্রদত্ত রেঞ্জে BST কী প্রিন্ট করুন - C++ এ O(1) স্পেস

  2. C++ এ প্রদত্ত নোড থেকে k দূরত্বে সমস্ত নোড প্রিন্ট করুন

  3. C++ STL ব্যবহার করে একটি প্রদত্ত পরিসরে মৌলিক সংখ্যা প্রিন্ট করুন

  4. একটি প্রদত্ত সংখ্যা দ্বারা বিভাজ্য পরিসরে সমস্ত সংখ্যা মুদ্রণ করার জন্য পাইথন প্রোগ্রাম