2017-01-23 32 views
-2

我需要幫助搞清楚如何修改我的程序來計算所需的比薩餅數,然後切片的剩餘部分。例如,如果用戶輸入18個人,則需要2個比薩餅(因爲每個比薩餅有20個切片),並且會有4個切片剩餘。每個披薩片和每個人吃多少片是恆定的,每人2片,每片披薩片20片。該計劃要求參加的人數。我也不能使用條件語句。數量計算所需的比薩餅和切片吃剩的

`

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

無關:變量名稱go camelCase in Java。使事情變得更容易閱讀。然後:它真的不清楚你要求什麼。 – GhostCat

+2

那麼你需要什麼幫助?你試圖自己解決這個問題嗎?你嘗試了什麼?你有沒有想過如果有人問你,你會怎麼做手工計算? –

+0

我的第一個建議是稍微好一點的變量名。在這種情況下,例如很難知道「披薩」應該代表什麼。像slicPerPizza這樣的名字會讓你的代碼更易讀。 –

回答

0

只需找到所需的比薩餅的數量,並用它來尋找剩餘比薩餅的數量。

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

小心給個小解釋?在「Math.ceil」部分代碼後面?我不確定到底做了什麼,這是上課。謝謝! –

+0

這是一種在java中向上舍入數字的方法。 首先,我們需要將切片的數量除以每披薩的切片數量。 乘以1.0可確保將其視爲double而不是int。 Math.ceil向上舍入數字 (int)確保我們可以將結果放入一個整數。 – ZNix

+0

另一個問題。我怎麼能使用模量函數來計算這個值,而不是你使用的四捨五入? –