Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में न्यूनतम बमों की संख्या


समस्या कथन यहां एक इमारत के कमरों में गुंडों को न्यूनतम बमबारी से मारने का है। कमरे 1 से n तक लेबल किए गए हैं। गुंडे पहले बमबारी हमले से घायल होते हैं और दूसरे में मर जाते हैं। जब कमरों पर बमबारी की जाती है तो गुंडे इमारत में निकटतम कमरे में विशेष रूप से पड़ोसी कमरे में भागते हैं। हमें इमारत में सभी गुंडों को मारने के लिए कमरों पर बमबारी करने के लिए आवश्यक बमबारी की संख्या की गणना करनी होगी।

आइए उदाहरण से समझते हैं

इनपुट - कमरों की संख्या = 3

आउटपुट - आवश्यक कुल बमबारी

4

2 1 3 2

व्याख्या - यहां आवश्यक न्यूनतम बमों की संख्या 4 है। मान लें कि हम पहले दूसरे कमरे पर बमबारी करते हैं तो गुंडे खुद को बचाने के लिए पहले या तीसरे कमरे में भागेंगे। फिर हम पहले कमरे पर बमबारी करते हैं, यहां दूसरे कमरे के हमलों से घायल कुछ गुंडे मर जाएंगे और जो गुंडे पहले कमरे में छिपे थे वे घायल हो जाएंगे और निकटतम कमरे यानी दूसरे कमरे में भागेंगे क्योंकि यह उनके निकटतम है। अब हम तीसरे कमरे पर बमबारी करते हैं यहां दूसरे कमरे की बमबारी से छिपे गुंडे तीसरे कमरे की बमबारी में मारे जाते हैं, और जो गुंडे तीसरे कमरे में छिपे थे वे निकटतम कमरे यानी दूसरे कमरे में भागेंगे। अंत में हम दूसरे कमरे पर बमबारी करते हैं यहां तीसरे और पहले कमरे के घायल गुंडे मारे जाते हैं और यह हमारा मिशन पूरा करता है।

इनपुट - कमरों की संख्या = 2

आउटपुट - आवश्यक कुल बमबारी

3

2 1 2

व्याख्या - यहां आवश्यक न्यूनतम बमों की संख्या 3 है। मान लें कि हम पहले दूसरे कमरे पर बमबारी करते हैं तो गुंडे खुद को बचाने के लिए पहले कमरे में भागेंगे। फिर हम पहले कमरे पर बमबारी करते हैं, यहां दूसरे कमरे के हमलों से घायल कुछ गुंडे मर जाएंगे और जो गुंडे पहले कमरे में छिपे थे वे घायल हो जाएंगे और निकटतम कमरे यानी दूसरे कमरे में भागेंगे क्योंकि यह उनके निकटतम है। अब हम दूसरे कमरे पर बमबारी करते हैं। पहले कमरे की बमबारी से छिपे गुंडे मारे जाते हैं और यह हमारा मिशन पूरा करता है।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

  • सबसे पहले उपयोगकर्ता से कमरों की संख्या इनपुट के रूप में ली जाती है।

  • आवश्यक बमों की संख्या की गणना (n+n/2) के रूप में की जाती है और बाद में प्रिंट की जाती है।

  • फिर हम इमारत के सभी सम कमरों पर बमबारी करते हैं और इसे प्रिंट करते हैं।

  • इसके बाद हम इमारत के विषम कमरों पर बमबारी करते हैं और उन्हें बाद में प्रिंट करते हैं।

  • अंत में, हम इमारत के सम कमरों पर फिर से बमबारी करके बमबारी प्रक्रिया को समाप्त करते हैं और परिणाम उपयोगकर्ता को प्रिंट किया जाता है।

उदाहरण

public class TP{    public static void main(String[] args){       int n = 8;       System.out.println("Total Bombings required");       System.out.println(n + n / 2);       for (int i = 2; i <= n; i += 2)          System.out.print(i + " ");       for (int i = 1; i <= n; i += 2)          System.out.print(i + " ");       for (int i = 2; i <= n; i += 2)          System.out.print(i + " ");    } }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा

Total Bombings required 12 2 4 6 8 1 3 5 7 2 4 6 8

  1. - Java रैंडम नंबर: एक शुरुआती गाइड

    Java रैंडम नंबर कैसे जनरेट करें 5. 7. 22. हम मनुष्यों के लिए, एक रैंडम नंबर जनरेट करना आसान है। हमें बस खुद से एक नंबर मांगना होता है, और एक हमारे दिमाग में आ जाता है। काश प्रोग्रामिंग में भी ऐसा ही आसान होता, है ना? Java में, रैंडम नंबर जनरेट करना आसान है, अगर आप जानते हैं कि कैसे। इस गाइड में, हम

  1. Java Math.random का उपयोग कैसे करें Java Math.random का उपयोग कैसे करें

    Math.random() Java मेथड 0.0 और 1.0 के बीच एक छद्म-यादृच्छिक संख्या उत्पन्न करता है। परिणामी यादृच्छिक संख्या को 0-1 से बाहर की रेंज प्राप्त करने के लिए गुणा किया जा सकता है, और परिणाम 0 हो सकता है लेकिन हमेशा 1 से कम होता है। प्रोग्रामिंग करते समय, अक्सर ऐसी स्थितियां होती हैं जहां आपको एक यादृच्

  1. - Java 9 में नया संस्करण-स्ट्रिंग स्कीम क्या है?

    सिमेंटिक वर्जनिंग Java 9 से, वर्जनिंग सिमेंटिक वर्जनिंग के अनुरूप हो सकती है। संस्करण संख्या डॉट्स द्वारा अलग की गई स्ट्रिंग्स का एक गैर-खाली अनुक्रम हो सकती है। इसमें तीन प्रमुख भाग होते हैं: मेजर संस्करण संख्या, माइनर संस्करण संख्या, और सिक्योरिटी। नया वर्जनिंग स्कीम Runtime.Version क्लास में प्रल