একটি অ্যারে holes[10] দেওয়া আছে যেটি ০ থেকে ৯ সংখ্যাগুলোর হোল (গোলাকার ছিদ্র) সংখ্যা ধারণ করে। লক্ষ্য হলো ইনপুট দিয়ে ইন্টিজার সংখ্যায় মোট কতগুলো হোল আছে তা বের করা। দেওয়া: holes[] = {2, 1, 1, 0, 0, 1, 1, 1, 0} (নোট: ৯-এর জন্য মান অনুপস্থিত, ধরে নেওয়া হয় ১ বা ০) ।
ইনপুট
number = 239143
আউটপুট
Count the number of holes in an integer are: 3
ব্যাখ্যা
holes[] দিয়ে গড়ে 239143 এর হোল: (1+0+0+2+0+0) = 3
ইনপুট
number = 12345
আউটপুট
Count the number of holes in an integer are: 3
ব্যাখ্যা
holes[] দিয়ে গড়ে 12345 এর হোল: (1+1+0+0+1) = 3
প্রোগ্রামে ব্যবহৃত পদ্ধতি:
সহজে প্রতিটি ডিজিট num%10 দিয়ে বের করে holes[num%10] কাউন্টে যোগ করা হয়। তারপর num ১০ দিয়ে ভাগ করে ছোট করা হয়।
- ইন্টিজার ইনপুট নেওয়া হয়।
holes[]অ্যারে ইনিশিয়ালাইজ করা হয়।holes_integer(int number, int holes[])ফাংশন ইন্টিজারে হোল সংখ্যা রিটার্ন করে।- ইনিশিয়াল কাউন্ট ০।
number > 0পর্যন্ত ট্রভারস।temp = number % 10লাস্ট ডিজিট।count += holes[temp]।number = number/10করে ছোট করা হয়।- শেষে
countরিটার্ন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int holes_integer(int number, int holes[]) {
int count = 0;
while (number > 0) {
int temp = number % 10;
count = count + holes[temp];
number = number / 10;
}
return count;
}
int main() {
int number = 239143;
int holes[] = { 2, 1, 1, 0, 0, 1, 1, 1, 0 };
cout << "Count the number of holes in an integer are: " << holes_integer(number, holes);
return 0;
}
আউটপুট
Count the number of holes in an integer are: 2