मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है, और एक अन्य संख्या x भी है। हम जानते हैं कि भाग्यशाली संख्याएँ धनात्मक संख्याएँ होती हैं जिनके दशमलव निरूपण में केवल भाग्यशाली अंक 4 और 7 होते हैं। दिए गए n धनात्मक पूर्णांकों का निर्माण कीजिए। हमें यह गिनना होगा कि उनमें से कितने के पास k से अधिक भाग्यशाली अंक नहीं हैं?
तो, अगर इनपुट ए =[44, 74, 474, 154] की तरह है; k =2, तो आउटपुट 3 होगा, क्योंकि तीन भाग्यशाली संख्याएँ 44, 74 और 474 हैं लेकिन 474 में तीन भाग्यशाली अंक हैं जो k से अधिक हैं। इसके अलावा154 में एक भाग्यशाली अंक है जो स्वीकार्य है।
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := size of A f := 0 for initialize i := 0, when i < n, update (increase i by 1), do: c := 0 while A[i] is not equal to 0, do: if A[i] mod 10 is same as 4 or A[i] mod 10 is same as 7, then: (increase c by 1) A[i] := A[i] / 10 if c <= k, then: (increase f by 1) return f
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include<bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int k){
int n = A.size();
int 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