একটি অ্যারে A (n উপাদান) এবং একটি সংখ্যা x দেওয়া আছে। লাকি নাম্বার হলো এমন পজিটিভ সংখ্যা যার ডেসিমেল রিপ্রেজেন্টেশনে শুধু ৪ এবং ৭ ডিজিট থাকে। দেওয়া nটি পজিটিভ ইন্টিজারের মধ্যে কতটিতে k বা তার কম লাকি ডিজিট আছে তা গণনা করতে হবে।
উদাহরণ
A = [44, 74, 474, 154], k=2 → আউটপুট: 3
ব্যাখ্যা: ৪৪, ৭৪, ৪৭৪ লাকি নাম্বার কিন্তু ৪৭৪-তে ৩টি লাকি ডিজিট আছে (k=2-এর চেয়ে বেশি)। ১৫৪-তে ১টি লাকি ডিজিট আছে যা গ্রহণযোগ্য।
সমাধানের ধাপসমূহ
n := A-এর সাইজ
f := 0
for i := 0 to n-1:
c := 0
while A[i] != 0:
if A[i]%10==4 or A[i]%10==7: c++
A[i] /= 10
if c <= k: f++
return f
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int k) {
int n = A.size(), f = 0;
for (int i = 0; i < n; ++i) {
int c = 0;
while (A[i] != 0) {
if (A[i] % 10 == 4 || A[i] % 10 == 7) c++;
A[i] /= 10;
}
if (c <= k) f++;
}
return f;
}
int main() {
vector<int> A = {44, 74, 474, 154};
int k = 2;
cout << solve(A, k) << endl;
}
ইনপুট
{44, 74, 474, 154}, 2
আউটপুট
3