के लिए अनुकूलित समाधान दिन के दौरान एक घोंघा एक दीवार को एक फीट ऊपर चलाता है। पूरे श्रम के बाद यह पूरे दिन करता है, यह थोड़ी देर आराम करता है ... लेकिन सो जाता है !! अगली सुबह यह उठता है और पता चलता है कि यह सोते समय वाई फीट नीचे फिसल गया है।मेरे होमवर्क
यदि यह हर दिन होता है, तो कितनी बार घोंघा अलग-अलग ऊंचाई की दीवारों को कवर करने के लिए रेंगती है?
मैं जैसा कि नीचे दिखाया घोंघा की ढोंगी की संख्या की गणना करने के लिए एक समारोह में लिखा है:
void count(int move_forward, int move_backward, int number_walls, int[] height)
{
int count = number_walls, diff = move_forward - move_backward;
while (number_walls--)
for (move_backward = move_forward; move_backward < height[number_walls]; move_backward += diff)
count++;
}
यह ठीक काम कर रहा है। लेकिन मैं जानना चाहता था कि प्रोग्राम की गति को और अनुकूलित करने के लिए इस समस्या को हल करने का कोई और तरीका है या नहीं।
(ऊंचाई-x)/(x-y) +1, कोई लूप आवश्यक नहीं – amit
@ जे, बीटीडब्ल्यू - सार्थक चर नामों के उपयोग के बारे में प्रारंभिक प्रश्न में प्राप्त सलाह आंतरिक लूप के संदर्भ में बहस योग्य है। बहुत सारे, बहुत लंबे नाम आपके कोड को क्रिप्टिक एक और दो अक्षर नामों के समूह के रूप में अपठनीय के रूप में हर बिट बनाते हैं। यह सब संतुलन के बारे में है। – dmckee
जब तक मैं अपनी नाक चिपका रहा हूं, तब तक एक और टिप्पणी। इस अभ्यास का बिंदु आपको थोड़ा सा बैठने और सोचने के लिए हो सकता है कि आप 'ओ (ऊंचाई)' से अलग दीवारों की समस्या कर सकते हैं (जिस तरह से आप इसे आजमा रहे थे) 'ओ (1)' (जिस तरह से अमित इसे हल करता है)। – dmckee