मैं इस कोड को किताब से समझने की कोशिश कर रहा हूं।

int[][] grade = {
  { 1, 0, 1 },
  { 0, 1, 0 },
  { 1, 0, 1 }
};
for (int i = 0; i < 3; i++) {
  for (int j = 0; j < 3; j++) {
    if (i == j)
      System.out.print(grade[i][j] + grade[j][i] + " ");
    else
      System.out.print(grade[i][j] * grade[j][i] + " ");
  }
  System.out.println(" ");
}

मैं पंक्तियों और स्तंभों के द्वि-आयामी सरणियों के तर्क को समझता हूं। मुझे समझ में नहीं आता कि इसका उत्तर कैसे आया।

2 0 1
0 2 0
1 0 2
-2
fsfh60 19 अक्टूबर 2017, 05:42

2 जवाब

सबसे बढ़िया उत्तर

यह 2 आयामी सरणी के माध्यम से लूप करता है। अगर मैं j के बराबर है, जैसे (0,0 1,1 2,2) तो यह ग्रेड [i] [j] को ग्रेड [j] [i] के साथ जोड़ता है। चूंकि i और j बराबर हैं, यह स्थान को अपने साथ जोड़ता है।

जब मैं j के बराबर नहीं होता तो यह ग्रेड [i] [j] को ग्रेड [j] [i] से गुणा करता है।

चूंकि वे बराबर नहीं हैं, यह ग्रिड में 2 अलग-अलग पदों को गुणा करता है। जैसे

ग्रेड [3] [1] को ग्रेड [1] [3] से गुणा किया जाता है, स्वयं से नहीं।

यदि आपने ग्रेड [1] [3] को 2 में बदल दिया है, तो सभी कोनों का आउटपुट 2 . होगा

इनपुट:

1 0 2
0 1 0
1 0 1

आउटपुट होगा:

2 0 2
0 2 0
2 0 2
0
Jeff Schenck 19 अक्टूबर 2017, 06:06

यह मूल रूप से दो आयामी सरणी के माध्यम से लूप करता है और यदि यह देखता है कि कॉलम और पंक्ति संख्या (i और j) समान हैं तो यह इसे स्वयं के साथ जोड़ देगा। यानी विकर्ण को दो से गुणा करें। और बाकी प्रविष्टियों के लिए यह अपने आप से गुणा हो जाएगा।

-1
hahahakebab 19 अक्टूबर 2017, 05:47