C# :: Aufgabe #199 :: Lösung #1

5 Lösungen Lösungen öffentlich
#199

Ermittlung von Zeilen- und Spaltennummer eines 2D-Array-Feldes

Anfänger - C# von hollst - 09.02.2018 um 11:03 Uhr
Die Felder eines "unendlich" großen 2D-Arrays seien nach folgendem "Diagonal-Schema" nummeriert:

1 2 4 7 . . .
3 5 8 . . . .
6 9 . . . . .
10 . . . . . .
. . . . . . usw.

Man schreibe ein Programm, das für eine gegebene Feldnummer N die Zeilen- (ZN) und die Spaltennummer (SN) zurückgibt.
Zeilen- und Spaltennummerierungen beginnen wie üblich mit 0.

Beispiele:
N = 8 -> ZN = 1, SN = 2
N = 31 -> ZN = 2, SN = 5
#1
1x
vote_ok
von DBqFetti (2480 Punkte) - 13.02.2018 um 22:22 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Windows; //WindowBase.dll

namespace TYP199 {
  class Program {
    static void Main() {
      int n = 8;
      int[,] a = {
        { 1, 2, 4 },
        { 3, 5, 8 },
      };

      Point? point = Find(n, a);
      Console.Write($"N = {n} -> ZN = {point?.X}, SN = {point?.Y}");
      Console.ReadKey(true);
    }

    static Point? Find<T>(T needle, T[,] heystack) {
      for(int i = 0; i < heystack.GetLength(0); i++) {
        for(int ii = 0; ii < heystack.GetLength(1); ii++) {
          if(EqualityComparer<T>.Default.Equals(heystack[i, ii], needle)) {
            return new Point(i, ii);
          }
        }
      }

      return null;
    }
  }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben