我如何计算 10 美元中有多少 25 美分硬币、硬币、镍币和便士?
我知道我需要一段时间,但我不知道一段时间后会是什么情况。
然后我这样做了:
while(#read from a file)
print $cents
$left = $cents %25 #i did this since quarter is the largest change we have.
在那之后,我不知道如何继续写下有多少 25 美分硬币、硬币、五分钱和便士。
我如何计算 10 美元中有多少 25 美分硬币、硬币、镍币和便士?
我知道我需要一段时间,但我不知道一段时间后会是什么情况。
然后我这样做了:
while(#read from a file)
print $cents
$left = $cents %25 #i did this since quarter is the largest change we have.
在那之后,我不知道如何继续写下有多少 25 美分硬币、硬币、五分钱和便士。
如果您想找出零钱,请以美分金额(而不是美元金额)计算,然后减去最大硬币的最大数量,然后减去下一个最大硬币的最大数量,等等。硬币值为 1,5, 10,25,我认为这总是会得出使用最少硬币的答案(尽管对于不同的可用硬币情况并非如此)。
my $amount_in_cents = 1000; # $10 * 100¢/$
my @coins = (25, 10, 5, 1);
my @change;
for my $coin (@coins) {
push @change, int($amount_in_cents / $coin);
$amount_in_cents -= $change[-1] * $coin;
}
say join ', ', map "$change[$_]x$coins[$_]¢", grep $change[$_], 0..$#coins;
你可以先看看如何使用一枚硬币:
my $break_apart = 1000; # ten dollars, in pennies
my $break_into = 25; # a quarter
my $remainder = $break_apart % $break_into;
my $count = ($break_apart - $remainder) / $break_into;
然后扩展它以使用多个硬币:
my @coins = (1, 5, 10, 25);
my $break_apart = 1000; # ten dollars, in pennies
for my $break_into (@coins)
{
my $remainder = $break_apart % $break_into;
my $count = ($break_apart - $remainder) / $break_into;
}