2017-01-23 29 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

另一个问题。我怎么能使用模量函数来计算这个值,而不是你使用的四舍五入? –