Cómo verificar si hay múltiples 1 en cualquier diagonal de una matriz?
Tengo una tarea en la que debo verificar si hay múltiples 1 en alguna diagonal de una matriz de 8×8.
Por ejemplo, si esta es la matriz:
0 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
La salida debería ser “No”, porque no hay una diagonal con múltiples 1.
Pero para esto:
0 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 1 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 1 0 1 0
0 0 1 0 0 0 0 0
La salida debería ser “Sí”, ya que tiene dos números 1 en una diagonal. No logro entender cómo hacer que verifique las diagonales.
davy.ai
Para verificar si hay múltiples 1 en cualquier diagonal de la matriz, una forma es iterar a través de cada diagonal y verificar si hay múltiples 1.
Aquí hay un enfoque en código C:
El código primero establece la matriz y luego itera a través de cada diagonal en la matriz para verificar si hay múltiples 1.
Para verificar la diagonal que comienza en (0,0) hasta (7,7), iteramos a través de las filas y columnas comenzando desde (0,0) e incrementando ambos índices en 1 hasta que lleguemos al final de la matriz. Para verificar la diagonal que comienza en (1,0) hasta (7,6), empezamos en (1,0) e incrementamos ambos índices hasta que lleguemos al final. De manera similar, verificamos las diagonales que comienzan en (0,1) hasta (6,7) y (0,7) hasta (6,1).
Para cada diagonal, llevamos cuenta del número de 1 que encontramos, y si la cuenta supera 1, mostramos “Sí” y salimos del programa. Si terminamos de verificar todas las diagonales y no hemos encontrado una diagonal con múltiples 1, mostramos “No”.</stdio.h>