Und auch Tag 3 ging mit dem C64. Im Grunde sogar in BASIC, wenn denn die Gleitkommazahlen dort es geschafft hätten das Ergebnis von Teil 2 verlustfrei zu repräsentieren. Aber 3.5174013e+09 wollte die Webseite nicht als Antwort durchgehen lassen. Habe es dann noch mal in C programmiert und 3517401300 herausbekommen, was die Webseite als korrekt befunden hat. Also war der Wert von BASIC eigentlich auch richtig, aber das konnte man ja nicht ahnen, das die beiden letzten Ziffern 0en sind. Wobei ich natürlich hätte ”schummeln” können, und die Multiplikanden die das BASIC-Programm ausgegeben hat, einfach mit einem Taschenrechner ausmultiplizieren können.
BASIC-Lösung:
10 TI$="000000":DIM M$(350):OPEN 2,8,2,"INPUT03,S,R"
20 PRINT"READ TREE MAP ROW:":H=0
30 IF ST<>0 THEN 100
40 INPUT#2,M$(H):H=H+1:PRINT H:PRINT"{UP}";:GOTO 30
100 CLOSE 2:W=LEN(M$(0)):PRINT"READING TIME: ";TI$
110 R=1:FOR I=1 TO 5:READ SX,SY:X=0:Y=0:TC=0
120 PRINT"TREES ON SLOPE";SX;",";SY;"=";
130 IF Y>=H THEN 170
140 IF MID$(M$(Y),X+1,1)="#" THEN TC=TC+1
150 Y=Y+SY:X=X+SX:IF X>=W THEN X=X-W
160 GOTO 130
170 PRINT TC:R=R*TC:NEXT:PRINT"PART 2:";R:PRINT"TOTAL TIME:";TI$
9000 REM SLOPE X/Y PAIRS
9010 DATA 3,1, 1,1, 5,1, 7,1, 1,2
Display More
Tigerbeere Keine der bisherigen Dateien ist IMHO sinnvoll mit dem `csv`-Modul zu lesen. So wirklich gut verständlich wird Code nicht wenn man falsche Werkzeuge verwendet.