一筐鸡蛋:
1个1个拿,正好拿完。
2个2个拿,还剩1个。
3个3个拿,正好拿完。
4个4个拿,还剩1个。
5个5个拿,还差1个。
6个6个拿,还剩3个。
7个7个拿,正好拿完。
8个8个拿,还剩1个。
9个9个拿,正好拿完。
1个1个拿,正好拿完。
2个2个拿,还剩1个。
3个3个拿,正好拿完。
4个4个拿,还剩1个。
5个5个拿,还差1个。
6个6个拿,还剩3个。
7个7个拿,正好拿完。
8个8个拿,还剩1个。
9个9个拿,正好拿完。
问筐里最少有多少鸡蛋?
已经有才女给了答案和推理:
从7、9得出是63,从2得出必须是奇数,从5得出个数只能是9,所以试试63x3、63x13、63x23就知道啦
下面是一个程序猿的答案:
use List::Util qw(max);
my %eggs = ( 2 =>1, 3 =>0, 4 =>1, 5 =>-1, 6 =>3, 7 =>0, 8 =>1, 9 =>0);
my $highest;
do { $highest = max values %eggs; } while (valuate($highest) == 0);
print "There are [$highest] eggs \n";
sub valuate {
my $highest = shift;
foreach my $key ( 2 .. 9 ) {
while ($eggs{$key} < $highest) { $eggs{$key} += $key; }
if ($eggs{$key} > $highest) { return 0; }
}
return $highest;
}
如果你安装了 Perl, 可以拷贝转一下。
今天是元宵节, 你可以把鸡蛋换成元宵, 筐换成锅, 看看需要多大的锅 (图来自同学): |
元宵节愉快! |