2012-10-23 49 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

痛苦美麗! – 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 = -600'而不是'y = 0'。 – cspolton

2

作爲除了鄧肯的回答,您可以使用此代碼片段,如果你只關心是不會減法後爲零值:

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

不錯。如果兩者相等(IMO),答案仍然正確。 –

+0

@DuncanJones當然,但是'non_zero'在這種情況下會是一個誤用;) – phant0m

+0

@DuncanJones雖然我確實考慮給它命名爲'most_probably_not_going_to_be_zero':P – phant0m