একটি ইন্টারভাল [first, last] দেওয়া আছে। লক্ষ্য হল এই রেঞ্জে এককের অঙ্ক (unit digit) k থাকা সংখ্যাগুলোর গণনা করা।
i=first থেকে i=last পর্যন্ত ট্রাভার্স করা হয়। প্রতিটি সংখ্যা i-এর এককের অঙ্ক k-এর সাথে তুলনা করা হয়। একই হলে count বাড়ানো হয়।
উদাহরণ
ইনপুট: first=8, last=40, k=8
আউটপুট: এককের অঙ্ক k থাকা সংখ্যার গণনা: ৪
ব্যাখ্যা: ৮ এবং ৪০-এর মধ্যবর্তী এককের অঙ্ক ৮ থাকা সংখ্যা: ৮, ১৮, ২৮, ৩৮
ইনপুট: first=100, last=200, k=9
আউটপুট: এককের অঙ্ক k থাকা সংখ্যার গণনা: ১০
ব্যাখ্যা: ১০০ এবং ২০০-এর মধ্যবর্তী এককের অঙ্ক ৯ থাকা সংখ্যা: ১০৯, ১১৯, ১২৯, ১৩৯, ১৪৯, ১৫৯, ১৬৯, ১৭৯, ১৮৯, ১৯৯। মোট: ১০
অ্যাপ্রোচ
- first এবং last ইন্টিজার দিয়ে রেঞ্জ [first, last] নির্ধারণ করা হয়।
getCount(int fst, int lst, int k)ফাংশন রেঞ্জ এবং k গ্রহণ করে fst এবং lst-এর মধ্যবর্তী এককের অঙ্ক k থাকা সংখ্যার গণনা রিটার্ন করে।- প্রাথমিক count ০।
- for লুপে i=fst থেকে i<=lst পর্যন্ত: ldigit = i%10 (এককের অঙ্ক)। ldigit == k হলে count বাড়ানো হয়।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int getCount(int fst, int lst, int k) {
int count = 0;
for (int i = fst; i <= lst; i++) {
int ldigit = i % 10;
if (ldigit == k) {
++count;
}
}
return count;
}
int main() {
int first = 5, last = 30;
int K = 5;
cout << "Numbers with unit digit K in range:" << getCount(first, last, K);
return 0;
}
আউটপুট
Numbers with unit digit K in range: 3