2017-01-23 11 views
-2

必要なピザの数を計算し、残りのスライスを計算するためにプログラムを変更する方法を理解するのに役立つ必要があります。たとえば、ユーザーが18人を入力した場合、ピザごとに20個のスライスがあるため、2個のピザが必要です。残りのスライスは4個になります。ピザごとのスライスと各人が食べるスライス枚数は一定で、1人あたり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

関連性のない変数名はJavaのcamelCaseになります。物事をもっと読みやすくします。そして、あなたが求めていることは本当にはっきりしません。 – GhostCat

+2

何が必要なのですか?自分で問題を解決しようとしましたか?何を試しましたか?誰かがあなたに尋ねた場合、手で計算*を行う方法について考えましたか? –

+0

私が持っている最初の提案は、少し上手な変数名です。この文脈では、例えば、「ピザ」が表すと思われるものを知ることは困難です。 slicesPerPizzaのような名前は、あなたのコードを読みやすくするための道のりです。 –

答えて

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を掛けることで、intではなくdoubleとして扱われます。 Math.ceilは数字を上に返します (int)は、結果を整数にできることを確認します。 – ZNix

+0

別の質問です。モジュラス関数を使用してこれを計算することができますが、使用した丸めではありません。 –

関連する問題