एक संख्या N दी गई है जिसके साथ हमें संख्या का उसके सबसे बड़े विषम अंक से गुणनफल करना है। यदि कोई विषम अंक नहीं है तो -1 प्रिंट करें।
जैसे हमने N को "153" से प्रारंभ किया है और इस संख्या में सबसे बड़ा विषम अंक 5 है तो परिणाम 153 का 5 से गुणनफल होगा यानी 153 * 5 = 765 और यदि संख्या में कोई विषम अंक नहीं है जैसे 246 तो आउटपुट -1 होना चाहिए।
इनपुट
N = 198
आउटपुट
1782
व्याख्या
198 * 9 = 1782
इनपुट
N = 15382
आउटपुट
76910
व्याख्या
15382 * 5 = 76910
समस्या हल करने के लिए उपयोग किया गया दृष्टिकोण
इनपुट N लें।
प्रत्येक अंक को पार करें और विषम अंकों की तलाश करें।
सबसे बड़ा विषम तत्व ढूंढें।
सबसे बड़े विषम तत्व का मूल संख्या N से गुणनफल करें।
यदि कोई विषम तत्व नहीं है तो परिणाम को -1 से अद्यतन करें।
परिणाम लौटाएं।
एल्गोरिदम
शुरू फ़ंक्शन int largestodd(int n) में चरण 1 → large को -1 के रूप में घोषित और प्रारंभ करें चरण 2 → लूप जब तक n > 0 digit को n % 10 के रूप में सेट करें यदि digit % 2 == 1 && digit > large तो, large को digit के रूप में सेट करें n को n / 10 के रूप में सेट करें चरण 3 → large लौटाएं फ़ंक्शन int findproduct(int n) में चरण 1 → large को largestodd(n) के रूप में घोषित और प्रारंभ करें चरण 2 → यदि large == -1 तो, -1 लौटाएं चरण 3 → (n * large) लौटाएं फ़ंक्शन int main() में चरण 1 → n को 15637 के रूप में प्रारंभ करें findproduct(n) को कॉल करके परिणाम प्रिंट करें रुकें
उदाहरण
#include <stdio.h> int largestodd(int n){ // यदि सभी अंक सम हैं तो // हम -1 लौटाएंगे int large = -1; while (n > 0) { // अंतिम अंक से जांच int digit = n % 10; // यदि वर्तमान अंक विषम है और // large से बड़ा है if (digit % 2 == 1 && digit > large) large = digit; n = n / 10; } // n का अधिकतम // विषम अंक लौटाने के लिए return large; } int findproduct(int n){ int large = largestodd(n); // यदि n में कोई विषम अंक नहीं है if (large == -1) return -1; // n का उसके सबसे बड़े विषम अंक से गुणनफल return (n * large); } int main(){ int n = 15637; printf("%d\n", findproduct(n)); return 0; } आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:
109459