/ / टर्नरी एक टर्नरी के भीतर - जावा, टर्नरी

एक टर्नरी के भीतर टर्नरी - जावा, टर्नरी

तो यह loops ect के लिए बहुत आम है, लेकिन जब हमारे पास एक कठिन उदाहरण है

int answer = (a < b) ? b : a;

हम एक और टर्नरी कैसे रख सकते हैं? एक बढ़ी हुई टर्नरी की तरह

सवाल:

दो int मूल्यों को देखते हुए, जो भी मूल्य वापस लौटाएंबड़ा। हालांकि अगर 5 से विभाजित होने पर दो मानों में समान शेष होता है, तो छोटे मान को वापस कर दें। हालांकि, सभी मामलों में, यदि दो मान समान हैं, तो 0 लौटें। नोट:% "mod" ऑपरेटर शेष की गणना करता है, उदा। 7% 5 2 है।

maxMod5(2, 3) → 3
maxMod5(6, 2) → 6
maxMod5(3, 2) → 3

मेरा विचार:

public int maxMod5(int a, int b) {
int answer = ((a < b) ? (a % 5 == b % 5) ? a : b) : a;
}

यदि एक <बी, जांच करें कि मॉड्यूलस 5 बराबर ect

उत्तर:

जवाब के लिए 2 № 1

आपके पास 4 संभावित परिणाम हैं:

  1. एक <बी और दोनों के पास समान शेष है -> एक लौटाएं
  2. एक <बी और वे एक ही शेष नहीं है -> वापसी बी
  3. ए> बी और दोनों एक ही शेष हैं -> वापसी बी
  4. ए> बी और वे एक ही शेष नहीं है -> एक वापसी

इससे कोई फर्क नहीं पड़ता कि आप कब लौटते हैं a == b.

int answer = (a < b) ? ((a % 5 == b % 5) ? a : b) : ((a % 5 == b % 5) ? b : a);

संपादित करें:

मैं 0 लौटने की आवश्यकता को याद करता हूं जब दो संख्याएं समान होती हैं। इसके लिए एक छोटा सा अतिरिक्त आवश्यकता है:

int answer = a==b ? 0 : (a < b) ? ((a % 5 == b % 5) ? a : b) : ((a % 5 == b % 5) ? b : a);

जवाब के लिए 0 № 2
int ans = (a == b) ? 0 : ((a % 5 == b % 5) ? ((a<b)?a:b) : ((a>b)?a:b));