Счастливые билеты
Написал небольшую програмку на Perl для подсчёта количества счастливых билетов в последовательности от 000000 до 999999. Их оказалось 55252.
for (0...999999)
{
$a = ('0' x (6-length $_)) . $_;
$c++ if substr($a, 0, 1)+substr($a, 1, 1)+substr($a, 2, 1) ==
substr($a, 3, 1)+substr($a, 4, 1)+substr($a, 5, 1);
}
print "$c\n";
Комментарии 22
set_time_limit(0);
for ($c = $i = 0; $i<1000000; $i++)
{
$a = str_pad($i, 6, '0', STR_PAD_LEFT);
if ($a[0]+$a[1]+$a[2] == $a[3]+$a[4]+$a[5]) $c++;
}
echo $c;
На моей памяти это самая популярная задачка была для олимпиад, её и в «Кванте» разбирали. Правда, мой вариант был эффективнее, но я всё равно его не помню. Помню только, что очки за задание пришлось выбивать на апелляции, т.к. проверяющие нифига в программе не поняли.
Ещё помню, что для 40 или
А скажи мне, уважаемый товарищ, как часто у вас в Казани вручают пассажирам билеты с номером «000000»?
Спасибо Болку за то, что напоминает любимые школьные задачки.
Но есть одна претензия по поводу реализации. Пример на пхп работает у меня порядка
Предлагаемый нижу код справляется с задачей соответственно за 0,7 сек (локальный пхп) и
$count = -1; //000000 is unhappy
for ($a=0;$a=0)&&($f
>Я умею программировать, но, кроме того, у меня очень мало времени, поэтому я решил задачу как решил :)
100%. Я преклоняюсь перед программистом Bolkом. На мой взгляд вы не просто умеете программировать, а умеете программировать чертовски здорово.
Например:
билет: 564891
одно решение:
Часто такой фигнёй занимаюсь в транспорте, ежели далеко ехать. Практически всегда складывается, как ни странно, одно время
это задачки для интеллектуалов:)
а вот сделать алгоритм, корторый бы это делал, наверное, интересно
я такие алгоритмы писал в 10 классе на паскале.
рекурсия. аккуратная рекурсия и ничего более.
set_time_limit(0);
header
$im = @imagecreate (100, 100);
$bgcolor = imagecolorallocate ($im, 255, 255, 255);
$color = imagecolorallocate ($im, 0, 0, 0);
for ($i = 0; $i
header
$im = @imagecreate (100, 100);
$bgcolor = imagecolorallocate ($im, 255, 255, 255);
$color = imagecolorallocate ($im, 0, 0, 0);
for ($i = 0; $i
header
$im = @imagecreate (100, 100);
$bgcolor = imagecolorallocate ($im, 255, 255, 255);
$color = imagecolorallocate ($im, 0, 0, 0);
for ($i = 0; $i<1000; $i++) {
for ($j = 0; $j<1000; $j++) {
$a = str_pad($i, 3, '0', STR_PAD_LEFT);
$b = str_pad($j, 3, '0', STR_PAD_LEFT);
if ($a[0]+$a[1]+$a[2] == $b[0]+$b[1]+$b[2]) {
imagesetpixel ($im, $i, $j, $color);
}
}
}
imagepng ($im);