Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Perl计算表示金钱的数字?_Perl - Fatal编程技术网

如何使用Perl计算表示金钱的数字?

如何使用Perl计算表示金钱的数字?,perl,Perl,我如何计算10美元中有多少个25美分、10美分、5美分和1美分 我知道我需要一段时间,但我不知道在这段时间内情况会怎样 然后我做了这个: while(#read from a file) print $cents $left = $cents %25 #i did this since quarter is the largest change we have. 在那之后,我不知道如何继续写下有多少个25美分、10美分、5美分和1美分。你可以先看看如何使用一枚硬币: my $break_apa

我如何计算10美元中有多少个25美分、10美分、5美分和1美分

我知道我需要一段时间,但我不知道在这段时间内情况会怎样

然后我做了这个:

while(#read from a file)
print $cents
$left = $cents %25 #i did this since quarter is the largest change we have.

在那之后,我不知道如何继续写下有多少个25美分、10美分、5美分和1美分。

你可以先看看如何使用一枚硬币:

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;
}

您可以从了解如何使用一枚硬币开始:

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;
}

如果你试图计算出变化,以分(而不是美元)计算,然后减去最大硬币的最大数量,然后再减去下一个最大硬币的最大数量,等等。硬币值为1,5,10,25,我认为这总会得出使用最少硬币的答案(尽管不同的可用硬币并非如此)


如果你试图计算出变化,以分(而不是美元)计算,然后减去最大硬币的最大数量,然后再减去下一个最大硬币的最大数量,等等。硬币值为1,5,10,25,我认为这总会得出使用最少硬币的答案(尽管不同的可用硬币并非如此)


当每枚硬币至少是下一枚硬币的两倍大时,贪婪的零钱生成算法是最优的。@Greg Bacon,nifty,谢谢。当每枚硬币至少是下一枚硬币的两倍大时,贪婪的零钱生成算法是最优的。@Greg Bacon,nifty,谢谢。