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
1813400

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.