এই সমস্যাতে, আমাদের দুটি সংখ্যা N এবং D দেওয়া আছে। আমাদের কাজ হল C++-এ মডুলো বা % অপারেটর ব্যবহার না করে ভাগশেষ বের করার প্রোগ্রাম লিখা।
সমস্যা বর্ণনা: আমাদের N কে D দিয়ে ভাগ করার পর যা ভাগশেষ থাকবে তা বের করতে হবে। কিন্তু আমরা মডুলো বা % অপারেটর ব্যবহার করতে পারব না।
উদাহরণ:
ইনপুট
N = 53, D = 3
আউটপুট
2
সমাধানের পদ্ধতি
ভাগশেষ বের করার একটি সহজ পদ্ধতি হল N-এ চেয়ে ছোট এমন সংখ্যা খুঁজে বের করা যা D-এর গুণিতক। তারপর সেটি N-থেকে বিয়োগ করলে ভাগশেষ পাওয়া যাবে।
প্রোগ্রাম ১ (লুপ ব্যবহার করে)
#include <iostream>
using namespace std;
int findRem(int N, int D) {
int i;
for(i = 0; ; i++) {
if(D * i >= N) break;
}
return N - (D * (i - 1));
}
int main() {
int N = 45, D = 6;
cout << "The remainder after dividing " << N << " by " << D << " is " << findRem(N, D);
return 0;
}
আউটপুট
The remainder after dividing 45 by 6 is 3
আরেকটি সমাধান (ইন্টিজার কোশেন্ট ব্যবহার করে): C++-এ ভাগফল (quotient) ইন্টিজার ভেরিয়েবলে রাখলে দশমিকাংশ কেটে যায়। সেটিকে D দিয়ে গুণ করে N-থেকে বিয়োগ করলেই ভাগশেষ পাওয়া যায়।
প্রোগ্রাম ২
#include <iostream>
using namespace std;
int findRem(int N, int D) {
int Q = N / D;
int R = N - (D * Q);
return R;
}
int main() {
int N = 45, D = 6;
cout << "The remainder after dividing " << N << " by " << D << " is " << findRem(N, D);
return 0;
}
আউটপুট
The remainder after dividing 45 by 6 is 3