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

C++-এ দুটি সংখ্যা ভাগ করে দশমিকের পরের ডিজিটের সংখ্যা গণনা


আমাদের দুটি ইন্টিজার num1 এবং num2 দেওয়া আছে। কাজ হল num1 কে num2 দিয়ে ভাগ করে দশমিক বিন্দুর পর কতগুলো ডিজিট আছে তা গণনা করা।

উদাহরণ:

ইনপুট: num1 = 2, num2 = 5 → আউটপুট: count is 1 (2/5 = 0.4, ১টি ডিজিট)

ইনপুট: num1 = 2, num2 = 0 → আউটপুট: Floating point exception

ইনপুট: num1 = 2, num2 = 3 → আউটপুট: Infinite (2/3 = 0.666...)

অ্যালগরিদম

  • remainder = num1 % num2 বের করুন

  • যখন remainder != 0: remainder = (remainder * 10) % num2, count++

  • যদি একই remainder আবার আসে (unordered_map দিয়ে ট্র্যাক), তবে recurring decimal → Infinity রিটার্ন করুন

  • লুপ শেষ হলে count রিটার্ন করুন

প্রোগ্রাম

#include <iostream> 
#include <unordered_map> 
using namespace std; 

int countdigits(int x, int y) { 
    int result = 0; 
    unordered_map mymap; 
    while (x % y != 0) { 
        x = x % y; 
        result++; 
        if (mymap.find(x) != mymap.end()) return -1; // Infinite 
        mymap[x] = 1; 
        x = x * 10; 
    } 
    return result; 
} 

int main() { 
    int res = countdigits(2, 5); 
    (res == -1) ? cout << "count is Infinity" : cout << "count is " << res; 
    return 0; 
}

আউটপুট

count is 1
  1. সি++-এ আয়তক্ষেত্রে বর্গের সংখ্যা গণনা

  2. C++-এ ফ্যাক্টোরিয়ালে অঙ্ক গণনা

  3. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)

  4. C++-এ A-এ N অঙ্ক যোগ করে প্রতিটি যোগফলে B দ্বারা বিভাজ্য রাখা