मान लीजिए हमारे पास n तत्वों की एक सरणी A है, और एक अन्य संख्या x भी है। हम जानते हैं कि लकी संख्याएं वे धनात्मक संख्याएं हैं जिनका दशमलव प्रतिनिधित्व केवल लकी अंक 4 और 7 से होता है। दिए गए n धनात्मक पूर्णांकों से। हमें गिनना है कि उनमें से कितनी में k से अधिक लकी अंक नहीं हैं?
उदाहरण के लिए, यदि इनपुट A = [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
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; int solve(vector 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 A = {44, 74, 474, 154}; int k = 2; cout << solve(A, k) << endl; }
इनपुट
{44, 74, 474, 154}, 2आउटपुट
3