Maison > développement back-end > Tutoriel C#.Net > Comment imprimer une matrice de taille n*n en spirale en utilisant C# ?

Comment imprimer une matrice de taille n*n en spirale en utilisant C# ?

PHPz
Libérer: 2023-08-23 13:17:02
avant
1122 Les gens l'ont consulté

Comment imprimer une matrice de taille n*n en spirale en utilisant C# ?

Pour faire pivoter une matrice dans l'ordre en spirale, nous devons procéder comme suit jusqu'à ce que toutes les matrices intérieures et extérieures soient couvertes :

  • Étape 1 - Déplacer les éléments de la rangée supérieure

  • Étape 2 - Déplacer les éléments de la dernière colonne

  • Étape 3 - Déplacer les éléments de la rangée du bas

  • Étape 4 - Déplacer les éléments de la première colonne

  • Étape 5 - En cas de matrice interne, répétez les étapes ci-dessus ci-dessous

Exemple

Démonstration

using System;
namespace ConsoleApplication{
   public class Matrix{
      public void PrintMatrixInSpiralOrder(int m, int n, int[,] a){
         int i, k = 0, l = 0;
         while (k < m && l < n){
            for (i = l; i < n; ++i){
               Console.Write(a[k, i] + " ");
            }
            k++;
            for (i = k; i < m; ++i){
               Console.Write(a[i, n - 1] + " ");
            }
            n--;
            if (k < m){
               for (i = n - 1; i >= l; --i){
                  Console.Write(a[m - 1, i] + " ");
               }
               m--;
            }
            if (l < n){
               for (i = m - 1; i >= k; --i){
                  Console.Write(a[i, l] + " ");
               }
               l++;
            }
         }
      }
   }
   class Program{
      static void Main(string[] args){
         Matrix m = new Matrix();
         int R = 3;
         int C = 6;
         int[,] aa = { { 1, 2, 3, 4, 5, 6 },
            { 7, 8, 9, 10, 11, 12 },
            { 13, 14, 15, 16, 17, 18 } };
            m.PrintMatrixInSpiralOrder(R, C, aa);
      }
   }
}
Copier après la connexion

Sortie

1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal