এই টিউটোরিয়ালে আমরা শিখব কিভাবে স্ট্রিং আকারে উপস্থাপিত একটি বড় সংখ্যাকে ভাগ করা যায়।
স্ট্রিং ফরম্যাটে একটি বড় সংখ্যা এবং একটি ভাজক দেওয়া আছে। আমাদের প্রোগ্রামটি ভাগশেষ বের করবে।
প্রথমে দেওয়া সংখ্যার সেই অংশটি বের করব যা ভাজকের চেয়ে বড়। তারপর বাকি ডিজিটগুলো এক এক করে ভাজকে যোগ করব।
সমস্যা সমাধানের ধাপগুলো:
বড় সংখ্যা এবং একটি ভাজক ইনিশিয়ালাইজ করুন।
দেওয়া সংখ্যার ওপর ইটারেট করুন যতক্ষণ না ভাজকের চেয়ে বড় অংশটি পাওয়া যায়।
এখন যেখানে ছেড়ে দিয়েছিলাম সেখান থেকে সংখ্যার শেষ পর্যন্ত ইটারেট করুন।
নিখুঁত অংশকে ভাজক দিয়ে ভাগ করে ফলাফলে যোগ করুন।
পরবর্তী ডিজিট যোগ করে ভাজ্য আপডেট করুন।
ফলাফল শূন্য কিনা তা যাচাই করুন।
ফলাফল প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#include <bits/stdc++.h> using namespace std; string divideLargeNumber(string number, int divisor) { // to store the result string result; int index = 0; // extracting the part that is greater than the given divisor int dividend = number[index] - '0'; while (dividend < divisor) { dividend = dividend * 10 + (number[++index] - '0'); } // iterating until all digits participate in the division while (number.size() > index) { result += (dividend / divisor) + '0'; // adding the next digit to the dividend dividend = (dividend % divisor) * 10 + number[++index] - '0'; } if (result.length() == 0) { return "0"; } return result; } int main() { string large_number = "12345678901234567890"; int divisor = 75; cout << divideLargeNumber(large_number, divisor) << endl; return 0; }আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
164609052016460905
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।