2012-10-23 16 views
6

मेरे पास दो संख्याएं हैं। मैं चाहता हूं कि निचले नंबर को दोनों मानों से घटाया जाए।कई संख्याओं से सबसे कम संख्या घटाकर

x: 1000 
y: 200 
=> result: x = 800 and y = 0. 

निम्नलिखित मेरे लिए थोड़ी बदसूरत है, तो क्या यह बेहतर तरीका है कि मैं ऐसा कर सकता हूं?

if (x <= y) { 
    y = y - x; 
    x = 0 
} else { 
    x = x - y; 
    y = 0; 
} 
+0

क्या यह आपको उन संख्याओं के साथ क्या करना है कोशिश कर रहे हैं बाद में? – phant0m

उत्तर

11

यह करना चाहिए:

int min = Math.min(x, y); 
x -= min; 
y -= min; 
+0

दर्दनाक beautifull !!! – artfullyContrived

3

आप निम्न कर सकते हैं:

x = x - y; 
y = 0; 

if(x<0) 
{ 
    y = -x 
    x = 0; 
} 
1

कैसे के बारे में इस: -

int lower = x < y ? x : y; 
x -= lower; 
y -= lower; 
0
x=x-y; 
y=y-x; 
if(x<0) 
    x=0; 
else 
    y=0; 
+0

यह 'y = 0' की बजाय' y = -600' देगा। – cspolton

2

डंकन जवाब देने के लिए एक अतिरिक्त के रूप में, आप इस स्निपेट का उपयोग कर सकते हैं अगर आप केवल मूल्य कि घटाव के बाद शून्य होने के लिए नहीं जा रहा है के बारे में परवाह:

int non_zero = Math.abs(x - y); // unless the two are equal of course 
+0

अच्छा। जवाब अभी भी सही है यदि दोनों बराबर हैं (आईएमओ)। –

+0

@ डंकन जोन्स निश्चित है, लेकिन उस मामले में 'non_zero' एक गलत नामक होगा;) – phant0m

+0

@ डंकन जोन्स मैंने इसे' most_probably_not_going_to_be_zero' नाम देने पर विचार किया था: पी – phant0m

संबंधित मुद्दे