दो धनात्मक पूर्णांक n और k दिए गए हैं, और हमें nवीं संख्या ज्ञात करनी है जिसमें अंक k है या k से विभाज्य है। k रेंज [2 से 9] में होगा। तो अगर n और k क्रमशः 15 और 3 हैं, तो आउटपुट 33 है। संख्याओं के रूप में [3, 6, 9, 12, 13, 15, 18, 21, 23, 24, 27, 30, 31, 33] ये हैं वे संख्याएँ जहाँ प्रत्येक तत्व में k =3 या k से विभाज्यता होती है और इस nth संख्या में 33 है। तो आउटपुट 33 है।
प्रत्येक संख्या की जाँच करें जिसमें k और k के गुणक हों, और तब तक गिनें जब तक हमें n वां तत्व न मिल जाए।
उदाहरण
#include<iostream> using namespace std; bool hasDigit(int n, int k) { while (n > 0) { int rem = n % 10; if (rem == k) return true; n = n / 10; } return false; } int countNumbers(int n, int k) { for (int i = k + 1, count = 1; count < n; i++) { if (hasDigit(i, k) || (i % k == 0)) count++; if (count == n) return i; } return -1; } int main() { int n = 10, k = 2; cout << "Last number is " << countNumbers(n, k) << " before that the number contains " << k << " and multiple of " << k; }के गुणक शामिल हैं।
आउटपुट
Last number is 20 before that the number contains 2 and multiple of 2