php - how to optimise this code? -


मेरे पास PHP में निम्न समस्या का समाधान है लेकिन 10 अंक संख्या के लिए निष्पादित करने में बहुत अधिक समय लग रहा है मैं जानना चाहता हूं कि मैं गलत कहां रहा हूँ? मैं गतिशील प्रोग्रामिंग के लिए नया हूँ। क्या किसी ने इस पर एक नजर रखी है?

समस्या

बॉटलैंड में उनके पास बहुत ही अजीब मौद्रिक प्रणाली है।

प्रत्येक बटलैंडियन सोना सिक्का में उस पर एक पूर्णांक संख्या लिखी गई है। एक सिक्का एन को बैंक में तीन सिक्के में एक्सचेंज किया जा सकता है: n / 2, n / 3 और n / 4 लेकिन ये संख्याएं सभी गोल हैं (बैंक को लाभ होता है)।

आप अमेरिकन डॉलर के लिए बाइटलेन्डियन सिक्कों को भी बेच सकते हैं। विनिमय दर 1: 1 है लेकिन आप बॉटलैंड के सिक्के नहीं खरीद सकते।

आपके पास एक सोने का सिक्का है आप इसके लिए कितने अमेरिकी डॉलर प्राप्त कर सकते हैं?

===================================== ====================================

<पूर्व> & lt;? Php $ maxA = एरे (); फ़ंक्शन एक्सचेंज ($ धन) {if ($ money == 0) {वापसी $ पैसे; } अगर (एज़ैट ($ मैक्सए [$ पैसे])) {$ temp = $ maxA [$ पैसे]; // अधिकतम एनटीअर के लिए एन} अन्य {$ temp = 0; } अगर ($ temp == 0) {$ m = $ money / 2; $ M = मंजिल ($ मी); $ O = $ धन / 3; $ O = मंजिल ($ o); $ N = $ धन / 4; $ N = तल ($ n); $ कुल = $ मी + $ एन + $ ओ; यदि (एज़ेट ($ मैक्सए [$ एम])) {$ m = $ maxA [$ m]; } और {$ m = विनिमय ($ मी); } अगर (एज़ैट ($ मैक्सए [$ n])) {$ n = $ maxA [$ n]; } और {$ n = विनिमय ($ n); } अगर (प्रेट ($ maxA [$ o])) {$ o = $ maxA [$ o]; } और {$ o = विनिमय ($ o); } $ Temp = अधिकतम ($ कुल, $ m + $ n + $ o, $ धन); $ Maxa [$ पैसा] = $ अस्थायी; // स्टोर मान} वापसी $ अस्थायी; } $ A = सरणी (); जबकि (1) {$ handle = fopen ("php: // stdin", "r"); $ पंक्ति = fgets ($ हैंडल); अगर (फीफ ($ संभाल)) {ब्रेक; } Array_push ($ ए, ट्रिम ($ पंक्ति)); } $ Count = count ($ A); के लिए ($ i = 0; $ i & lt; $ count; $ i ++) {$ val = विनिमय ($ ए [$ i]); प्रिंट "$ val \ n"; }? & Gt;

यहाँ के लोगों के लिए कोड का एक reformatted संस्करण (जैसे मैं) जो समझ सकता है उपरोक्त। यह कुछ भी सुधार नहीं करता है।

  फ़ंक्शन विनिमय ($ धन) {स्थिर $ maxA = सरणी (0 = & gt; 0); अगर (प्रेट ($ MAXA [$ पैसे])) {$ पैसे लौटाएं; } $ M = मंजिल ($ धन / 2); $ O = मंजिल ($ धन / 3); $ N = तल ($ धन / 4); $ कुल = $ मी + $ एन + $ ओ; यदि (एज़ेट ($ मैक्सए [$ एम])) {$ m = $ maxA [$ m]; } और {$ m = विनिमय ($ मी); } अगर (एज़ैट ($ मैक्सए [$ n])) {$ n = $ maxA [$ n]; } और {$ n = विनिमय ($ n); } अगर (प्रेट ($ maxA [$ o])) {$ o = $ maxA [$ o]; } और {$ o = विनिमय ($ o); } वापसी $ अधिकतम [$ पैसे] = अधिकतम ($ कुल, $ m + $ n + $ o, $ धन); }  

Comments