2017-02-21 89 views
0

我必須檢查給定範圍是否可能爲表達式a-b = c生成一個隨機數。檢查範圍是否可以接受或不在表達式a-b = c

例如 的範圍是1至9 B檔位範圍是1至9和 C範圍內是10〜99

然後在這種情況下,我必須返回false。

我的登錄是

if (((a.Min - b.Min) <= c.Max) && ((a.Max - b.Min) >= c.Min)) 
    return true; 
    else 
    return false; 

但這種情況在少數情況下失敗。

任何人都可以幫助我。

+1

*這種情況在少數情況下失敗* - 您可以發佈這些情況嗎? – RomanPerekhrest

+0

這是失敗的條件像一個是101至999,B是1至9和C是10至99。 – user3483782

回答

0

我認爲正確的條件應該是:

a.Max - b.Min <= c.Max 
a.Min - b.Max >= c.Min 

有了您的例子:A = [101,999],B = [1,9]

的分鐘數,你可以得到的是: a.Min - b.Max = 101 - 9 = 92

的最大數量是:999 - 1 = 998

所以你的邏輯返回true當c = [92,998]或任何與分鐘> 92 ,最大值爲< 998,如[100,500]

相關問題