এই সমস্যাতে, আমাদের একটি স্ট্রিং num দেওয়া আছে যা একটি বড় সংখ্যা প্রকাশ করে এবং একটি ইন্টিজার R দেওয়া আছে। আমাদের কাজ হল C++-এ বড় সংখ্যাকে r দিয়ে ভাগ করলে ভাগশেষ বের করার প্রোগ্রাম লিখা।
সমস্যা বর্ণনা: স্ট্রিং-এ দেওয়া সংখ্যাকে r দিয়ে ভাগ করলে ভাগশেষ কত হবে তা বের করতে হবে।
উদাহরণ:
ইনপুট
num = "123423450942121", r = 54
আউটপুট
7
সমাধানের পদ্ধতি
ভাগশেষ বের করতে হলে ভাগ করতে হবে। কিন্তু বড় সংখ্যা ভাগ করা জটিল। তাই আমরা ডিজিট বাই ডিজিট ভাগ করব এবং প্রতিটি ধাপে ভাগশেষ সংরক্ষণ করব। এই প্রক্রিয়া পুরো স্ট্রিং (MSB থেকে LSB) পর্যন্ত চালিয়ে যাবে। শেষে ভাগশেষ প্রিন্ট হবে।
প্রোগ্রাম
#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num, int R) {
int currDigit, rem = 0;
for (int i = 0; i < num.length(); i++) {
currDigit = rem * 10 + (num[i] - '0');
rem = currDigit % R;
}
return rem;
}
int main() {
string num = "123423450942121";
int R = 54;
cout << "The remainder when large number is divided by r is " << calcRem(num, R);
return 0;
}
আউটপুট
The remainder when large number is divided by r is 7