英文:
How to calculate the absolute difference between the sum of diagonals?
问题
public class DiagonalDifference {
public static int calculateDiagonalDifference(int[][] matrix) {
int n = matrix.length;
int leftToRightSum = 0;
int rightToLeftSum = 0;
for (int i = 0; i < n; i++) {
leftToRightSum += matrix[i][i];
rightToLeftSum += matrix[i][n - i - 1];
}
return Math.abs(leftToRightSum - rightToLeftSum);
}
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{9, 8, 9}
};
int result = calculateDiagonalDifference(matrix);
System.out.println("The absolute difference between diagonals is: " + result);
}
}
英文:
Given a square matrix, calculate the absolute difference between the sums of its diagonals.
For example, the square matrix is shown below:
1 2 3
4 5 6
9 8 9
The left-to-right diagonal =15 . The right to left diagonal = 17. Their absolute difference is 2.
Please help with the code for Java.
答案1
得分: 1
考虑一个大小为 N*N 的数组矩阵。从左到右的对角线与行、列具有相同的索引。从右到左的对角线的索引之和为 N-1
。一旦将它们相加,您可以减去它们并对其取绝对值:
int[][] matrix = ...; //
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i < matrix.length; ++i) {
sum1 += matrix[i][i];
sum2 += matrix[i][matrix.length - i - 1];
}
int result = Math.abs(sum1 - sum2);
英文:
Consider a matrix as an array of arrays of the size N*N. The left-to-right diagonal the row and the column have the same index. On the right to left diagonal the indexes sum up to N-1
. Once you sum them, you can then subtract them and apply the absolute value to it:
int[][] matrix = ...; //
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i < matrix.length; ++i) {
sum1 += matrix[i][i];
sum2 += matrix[i][matrix.length - i - 1];
}
int result = Math.abs(sum1 - sum2);
答案2
得分: 1
public int diagonalDifferences(List<List<Integer>> list) {
int rSum = 0;
int lSum = 0;
int i = 0;
int j = 0;
int dif = 0;
for(i=0; i<list.size(); i++){
for(j=0; j<list.get(0).size(); j++){
if(i==j){
lSum +=list.get(i).get(j);
}
if((i+j) == (list.get(0).size()-1)){
rSum +=list.get(i).get(j);
}
}
}
dif = Math.abs(rSum - lSum);
return dif;
}
英文:
public int diagonalDifferences(List<List<Integer>> list) {
int rSum = 0;
int lSum = 0;
int i = 0;
int j = 0;
int dif = 0;
for(i=0; i<list.size(); i++){
for(j=0; j<list.get(0).size(); j++){
if(i==j){
lSum +=list.get(i).get(j);
}
if((i+j) == (list.get(0).size()-1)){
rSum +=list.get(i).get(j);
}
}
}
dif = Math.abs(rSum - lSum);
return dif;
}
答案3
得分: 0
import java.util.*;
public class Main {
static int diagonalDiff(int arr[][]) {
int leftSum = 0;
int rightSum = 0;
int n = arr.length;
for (int i = 0; i < arr.length - 1; i++) {
leftSum = leftSum + arr[i][i];
rightSum = rightSum + arr[i][n - 1 - i];
}
return java.lang.Math.abs(leftSum - rightSum);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter size");
int n = scan.nextInt();
int a[][] = new int[n][n];
System.out.print("Enter array elements");
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j <= a[i].length - 1; j++) {
a[i][j] = scan.nextInt();
}
}
System.out.print(diagonalDiff(a));
}
}
英文:
import java.util.*;
public class Main
{
static int diagonalDiff(int arr[][])
{
int leftSum=0;
int rightSum=0;
int n=arr.length;
for(int i=0;i<arr.length-1;i++)
{
leftSum=leftSum+arr[i][i];
rightSum=rightSum+arr[i][n-1-i];
}
return java.lang.Math.abs(leftSum-rightSum);
}
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
System.out.print("Enter size");
int n=scan.nextInt();
int a[][]=new int[n][n];
System.out.print("Enter array elements");
for(int i=0;i<a.length-1;i++)
{
for(int j=0;j<=a[i].length-1;j++)
{
a[i][j]=scan.nextInt();
}
}
System.out.print(diagonalDiff(a));
}
}
答案4
得分: -1
使用Math.abs()来获取对角线之间的绝对差异
链接:https://www.tutorialspoint.com/java/lang/math_abs_int.htm
英文:
Use Math.abs() to get the absolute difference between the diagonals
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论