Python :: Aufgabe #176

3 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von jigga (3000 Punkte) - 19.02.2018 um 12:22 Uhr
Quellcode ausblenden Python-Code
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))
1x
vote_ok
von hak (960 Punkte) - 01.03.2018 um 22:28 Uhr
Quellcode ausblenden Python-Code
def pos(nr):
    n = 0
    for i in range(1, nr + 1):
        n = n + i
        if n >= nr:
            d = n - nr
            return [ i - d -1 , d ]
vote_ok
von Kubayann (120 Punkte) - 15.04.2018 um 14:53 Uhr
Meine erster Beitrag auf der Seite, also bitte seid bitte gnädig mit meiner Lösung :D


Quellcode ausblenden Python-Code
## Autor: Yannik K.
## Variblen festlegen

Startwert = 1
Gesucht = int(input("Bitte eine Zahl eingeben: "))
Zeile = 0
Spalte = 0

## Schleife für die 0-te Spalte
## Ausgabe, wenn in 0-ter Spalte

while Startwert <= Gesucht:
    Spalte = Spalte + 1
    Startwert = Startwert + Spalte
    if Startwert == Gesucht:
        print("ZN = 0 SN = " + str(Spalte))
        break

## Variable festlegen

Ausgangspunkt= Startwert-Spalte

## Schleife für die n-te Spalte
## Geht von der 0-ten Spalte aus und verringert pro Durchlauf den Spaltenwert um -1

while Ausgangspunkt != Gesucht:
    Zeile = Zeile + 1
    Ausgangspunkt = Ausgangspunkt + 1
    Spalte = Spalte - 1

## Ausgabe, wenn nicht in 0-ter Spalte 

if Startwert != Gesucht:
    print("ZN = " + str(Zeile) + " SN = " + str(Spalte-1))