Python Aufgabe Fehler?
Hi zusammen ich muss zu dieser Aufgabenstellung einen Python Code machen. Jedoch Habe ich einen Fehler denn beim 2. Test mit 3x der 1 gibt es einen falschen Input. Wie müsste der Code abgeändert werden damit es funktioniert ?
Aufgabe:
- A school decided to replace the desks in three classrooms. Each desk sits two students. Given the number of students in each class, print the smallest possible number of desks that can be purchased.
The program should read three integers: the number of students in each of the three classes, a, b and c respectively.
In the first test there are three groups. The first group has 20 students and thus needs 10 desks. The second group has 21 students, so they can get by with no fewer than 11 desks. 11 desks is also enough for the third group of 22 students. So we need 32 desks in total.
Run Test 1: Input: 20, 21, 22 ; Correct Answer: 32
Run Test 2: Input: 1, 1, 1 ; Correct Answer: 3
Code :
Eingabe1 = input("Anzahl Schueler 1")
Eingabe2 = input("Anzahl Schueler 2")
Eingabe3 = input("Anzahl Schueler 2")
Anzahl_S =(int(Eingabe1) + int(Eingabe2) + int(Eingabe3))
num = (int(Anzahl_S) /2 )
def check(num):
if num & 1 == 0:
print(int(num))
else:
print(int(num)+1)
check(int(num))
3 Antworten
Deine Rechnung verstehe ich leider nicht
Jede Klasse muss doch getrennt gerechnet werden!
Es können ja nicht 1/2 Tische auf Schulklassen aufgeteilt werden.
Tisch = int ((Eingabe + 1)/2)
Dh immer aufgrunden ! Je Schulklasse
Dann alle Tische addieren
Achtung
Absichtlich nur Pseudocode bzw Text um dir das Programieren nicht vorweg zu nehmen
Gerade den Kommentar ergänzt als du wohl gefragt hast.
Eigentlich hast du doch den Code auch schon
Nur vollkommen falscher Ansatz
Tische1 = (int(Eingabe1+1) /2 )
(ÄHNLICH wie deine Formel nur aufrunden und nicht abrunden)
Dann genauso für die anderen beiden und Summe bilden
Jetzt sollte es klar sein
Anzahl_S =(int(Eingabe1) + int(Eingabe2) + int(Eingabe3))
Hier ist bereits der Fehler.
Wenn du die Anzahl der Tische pro Klasse anhand der darin enthaltenen Schüler benötigst, kannst du die Schüler nicht zusammenrechnen, sondern MUSST sie einzeln betrachten. Am Ende kannst du dann nur die Anzahl der Tische pro Klasse addieren.
Danke, ich habe nun begriffen was mein Denkfehler dahinter war aber ich weiss nicht wie ich das jetzt in python schreiben muss. Könntest du mir helfen ?
Du darfst nicht die Schüler aus allen drei Gruppen zusammenrechnen, sondern musst pro Gruppe berechnen, wie viele Tische gebraucht werden und dann die Tische zusammenrechnen.
Beispiel: Sagen wir mal der Einfachheit halber, dass es nur zwei Gruppen mit jeweils 21 Schülern gibt. Wenn du die direkt zusammenzählst, hast du 42 Schüler und brauchst 21 Tische. Wenn du aber zuerst pro Gruppe berechnest, wie viele Tische du brauchst, brauchst du 11 Tische pro Gruppe, also 22 Tische.
from math import ceil
tische = sum([ceil(int(input(f"Anzahl Schüler in Gruppe {gruppe}: ")) / 2) for gruppe in range(1,4)])
print(f"Man braucht {tische} Tische.")
Ok vielen Dank wie müsste dann der Code lauten ?