2017-05-26 1 views
-1

ので基本的には、どのように$ 1.26ターンを行います。Javaでシリーズの複数の剰余*はどのように動作するのですか?

Dollars: 1 
Quarters: 1 
Pennies: 1 

感謝!代わりに、あなたは整数の除算を行う必要があり、各宗派のために

int change = (int)(changeDue*100); 

int dollars = (int)(change/100); 
change=change%100; 
int quarters = (int)(change/25); 
change=change%25; 
int pennies = (int)(change/1); 
change=change%1 

System.out.println("Dollars: " + dollars); 
System.out.println("Quarters: " + quarters); 
System.out.println("Pennies: " + pennies); 
+2

"モジュロ演算子"を** remainder **に置き換えます。 '126/100'の残りの部分は26です...残りの値を試してみてください... –

+1

' change = change%100; 'を持っており、' 126%100'は「26」。ですから、 'change = 26;の後に' change 'にはどのような価値がありますか? –

+0

** **は何も「整理」する方法を知っています。これを書いた**プログラマー**は、そのように動作するようにステートメントを特定の順序で記述することによってコードを「編成」しました。 –

答えて

0

モジュロ演算は、除算の残りの部分を与えます。 %操作での値a % mは、常に0からm - 1までの範囲です。

change=change%100; // divides by 100 and leaves the remainder which is less than a dollar 
change=change%25; // divides by 25 and leaves the remainder which is less than a quarter 
change=change%10; // divides by 10 and leaves the remainder which is less than a dime 
change=change%5; // divides by 5 and leaves the remainder which is less than a nickel 
change=change%1 // this operation is always 0 because an integer can always be divided by 1 without a remainder 
0

モジュロ演算子の残りにタイトルを編集し、その後、モジュロ:

  • 整数の除算部門の通知を無視して、例えばModuloは除算のリマインダのみを返します。たとえば、次のようになります。 126%100 = 26

したがって、126セントの場合は1ドルが必要です。そして、より小さな金種ごとにリマインダー値で同じことを繰り返す。四半期の場合、あなたは26/25 = 1四半期になり、リマインダは26%1、つまり1です...あなたはそのアイデアを得ます。

関連する問題