2017-01-23 3 views
-2

Ich brauche Hilfe herauszufinden, wie mein Programm zu ändern, um die Anzahl der benötigten Pizzas und dann den Rest der Scheiben zu berechnen. Wenn der Benutzer beispielsweise 18 Personen eingibt, benötigt man 2 Pizzas (da pro Pizza 20 Scheiben vorhanden sind) und es wären 4 Scheiben übrig geblieben. Die Scheiben pro Pizza und wie viele Scheiben jede Person isst, ist konstant, 2 Scheiben pro Person und 20 Scheiben pro Pizza. Das Programm fragt nach der Anzahl der Teilnehmer. Ich kann auch keine bedingten Anweisungen verwenden.Berechnung der Anzahl der Pizzas benötigt und Scheiben übrig

`

int pizza = 20; 
    int pizzaperson = 2; 


    System.out.println("What is the number of people expected at the pizza party?"); 
    int people = Integer.parseInt(s.nextLine()); 


    int pizzatotal = (people * pizzaperson); 
    int pizzaleft = pizzatotal % pizza; 
    int total = (pizza/pizzaperson) % people; 
      System.out.println("For " + people + " people that would be " + pizzatotal + " pizza(s) with each person having " + pizzaperson + " slices each."); 
      System.out.println("There would be " + pizzaleft + " slice(s) leftover"); 

`

+0

Nicht verwandt: Variablennamen gehen CamelCase in Java. Erleichtert das Lesen. Und dann: Es ist wirklich nicht klar, wonach Sie fragen. – GhostCat

+2

Also welche Hilfe brauchst du? Haben Sie versucht, das Problem selbst zu lösen? Was hast du versucht? Hast du darüber nachgedacht, wie du die Rechnung * per Hand * machen würdest, wenn dich jemand fragt? –

+0

Der erste Vorschlag, den ich habe, ist etwas bessere Variablennamen. In diesem Zusammenhang ist es schwierig zu wissen, was zum Beispiel "Pizza" darstellen soll. Ein Name wie slicesPerPizza würde einen großen Beitrag dazu leisten, dass Ihr Code lesbar wird. –

Antwort

0

einfach die Anzahl der Pizzen erforderlich ist, und dass die Anzahl der übrig gebliebenen Pizzen finden verwenden.

int SLICES_PER_PIZZA = 20; 
int SLICES_PER_PERSON = 2; 

System.out.println("What is the number of people expected at the pizza party?"); 
int people = Integer.parseInt(s.nextLine()); 
int slices = people * SLICES_PER_PERSON; 

int num_pizzas = (slices + SLICES_PER_PIZZA - 1)/SLICES_PER_PIZZA; // round up 
// Alternatively, you can use Math.ceil: 
// int num_pizzas = (int) Math.ceil(1.0 * slices/SLICES_PER_PIZZA); // round up 
int remainder = (num_pizzas * SLICES_PER_PIZZA) - slices; 

System.out.println("For " + people + " people that would be " + num_pizzas + " pizza(s) with each person having " + SLICES_PER_PERSON + " slices each."); 
System.out.println("There would be " + remainder + " slice(s) leftover"); 
+0

Möchten Sie eine kleine Erklärung geben? hinter dem "Math.ceil" Teil des Codes? Ich bin mir nicht sicher was genau das macht und das ist für den Unterricht. Vielen Dank! –

+0

Es ist eine Möglichkeit, Zahlen in Java zu runden. Zuerst müssen wir die Anzahl der Scheiben durch die Scheiben pro Pizza teilen. Multiplikation mit 1.0 stellt sicher, dass dies als ein Doppel behandelt wird, nicht ein Int. Math.ceil Runden Zahlen (int) stellt sicher, dass wir das Ergebnis in eine ganze Zahl setzen können. – ZNix

+0

Eine andere Frage. Wie kann ich dies mit der Modulo-Funktion und nicht mit der Rundung berechnen, die Sie verwendet haben? –

Verwandte Themen