Python :: Aufgabe #176 :: Lösung #1
3 Lösungen
#176
Ermittlung von Zeilen- und Spaltennummer eines 2D-Array-Feldes
Anfänger - Python
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 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
von jigga (4260 Punkte)
- 19.02.2018 um 12:22 Uhr
array, pre_array = [], []
while True:
n = input("Feldnummer eingeben: ")
try:
n = int(n)
break
except:
print("Keine Zahl eingegeben! Bitte nochmal!\n")
i, j, k = 1, 1, 0
while True:
if i < n:
while i < n:
pre_array.append(i)
i += k + j
k += 1
elif i == n:
pre_array.append(i)
array.append(pre_array)
break
else:
array.append(pre_array)
i = array[j-1][0] + j + 1
j += 1
k = 0
pre_array = []
for l in range(len(array)):
if n in array[l]:
print("ZN =", l, ", SN =", array[l].index(n))
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
