我不明白如何计算结果
int halfDollar = remainingAmount / 50;
remainingAmount = remainingAmount % 50;
int numberOfQuarters = remainingAmount / 25;
remainingAmount = remainingAmount % 25;
ETC .....
import java.util.Scanner;
public class Program3
{
public static void main(String [] args)
{
Scanner kbd = new Scanner(System.in);
System.out.print("Please enter the total dollar amount in the piggy bank: $");
double amount = kbd.nextDouble();
int remainingAmount = (int)(amount * 100);
int halfDollar = remainingAmount / 50;
remainingAmount = remainingAmount % 50;
int numberOfQuarters = remainingAmount / 25;
remainingAmount = remainingAmount % 25;
int numberOfDimes = remainingAmount / 10;
remainingAmount = remainingAmount % 10;
int numberOfNickels = remainingAmount / 5;
remainingAmount = remainingAmount % 5;
int numberOfPennies = remainingAmount;
System.out.println(String.format("In $" + "%.2f", amount) + " worth of pennies there are:");
System.out.println(halfDollar + " half dollar(s), " + numberOfQuarters + " quarter(s), " + numberOfDimes + " dime(s), " + numberOfNickels + " nickle(s), and " + numberOfPennies + " cent(s).");
}
}
答案 0 :(得分:1)
这很简单,你将美元的数量乘以100并获得美分数,然后计算出多少镍币,硬币等。
例如,5.26美元是526美分,即10美元(5美元),1季度,1美分。
整数除法给出了Y包含X的次数,模数(%)给出了余数。
526 / 50 = 10
526 % 50 = 26
26 / 25 = 1
26 % 25 = 1
1 / 10 = 0
1 % 10 = 1
1 / 5 = 0
1 % 5 = 1
1 / 1 = 1
1 % 1 = 0
显然,这样做的目的是通过首先给出最高面额的硬币,然后是下一个面额的硬币等最多的硬币来打破最少数量的硬币中的金额。
答案 1 :(得分:0)
为避免分数,您将值乘以100.使用分数进行计算有点困难。 例如,不是用1.25美元进行计算,程序员更喜欢进行计算125.这样可以很容易理解。
如果将(/)X除以Y,则可以找到X包含的Y的数量。 如果你取Y的mod(%)X,你会发现X的余数除以Y
Think that $1.43 entered.
1.43 * 100 = 143
143 / 50 = 2 -> Half dollar
143 % 50 = 43 -> remainder of division
43 / 25 = 1 -> Quarter
43 % 25 = 18 -> remainder of division
18 / 10 = 1 -> Dimes
18 % 10 = 8 -> remainder of division
8 / 5 = 1 -> Nickels
8 % 5 = 3 -> remainder of division
There is no more division last remainder is pennies and it is 3
答案 2 :(得分:0)
/
运算符在应用于int
时提供整数除法。那就是:分数部分被扔掉的分区。
例如:10 / 3
提供3
。
自:
10
除3
后3.3333333
重复发生。 0.3333333
重复出现)会得到结果 3
。 %
运算符提供模数或整数除法的余数。即:分子减去分母的最大倍数,小于分子。
例如:10 % 3
给出1
。
自:
10
3
10 / 3
的结果为3
(正如我们上面所述)3
)的分母(10
)的最大倍数是3,因为3 * 3
是9
而且3
不是9
的倍数1}}大于10
但小于9
。 10
)中减去(10 - 9
),得到1
,结果为 /
。理解这一点的一种更简单的方法是,整数3
是整个事物的分裂,不能被分割。所以你可能想要在3个人之间平均分割10个大理石(你不想分成几块)。然后每个人获得3个大理石,但剩下1个大理石。
注意:分母的最大倍数恰好是整数除法的结果(在这种情况下为10 / 3
,因为在3
中 10 / 3 =
)
注意:你也可以通过将小数部分乘以整数除法的结果(我们计算得出3
0.33333... * 3
)来解决这个问题。给予1
结果为 {{1}} 。