vak: (Default)
[personal profile] vak
Задача N1. Число оканчивается на 2. Если эту 2-ку переставить вперед, то получится удвоенное число. Что это за число?

Задача N2. Число оканчивается на 3. Если эту 3-ку переставить вперед, то получится утроенное число. Найти число.

Задачи N3-8. То же самое для 4, 5, 6, 7, 8, 9.

Ответы:
Для 2 решение = 105263157894736842
Для 3 решение = 1034482758620689655172413793
Для 4 решение = 102564
Для 5 решение = 102040816326530612244897959183673469387755
Для 6 решение = 1016949152542372881355932203389830508474576271186440677966
Для 7 решение = 1014492753623188405797
Для 8 решение = 1012658227848
Для 9 решение = 10112359550561797752808988764044943820224719

Date: 2007-05-06 20:36 (UTC)
From: [identity profile] dvv.livejournal.com
В смысле — "переставить"? Поменять со старшей цифрой? Циклически всю запись сдвинуть вправо?

Date: 2007-05-06 20:50 (UTC)
From: [identity profile] webushka.livejournal.com
По-идее, такого числа нет.

Date: 2007-05-06 20:55 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
105263157894736842
103448275862068965517241379
И так далее.

В общем, обычное умножение в столбик с переносом вверх, пока не получится 0.

Date: 2007-05-06 20:56 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
1034482758620689655172413793, конечно.

Date: 2007-05-06 21:01 (UTC)
From: [identity profile] webushka.livejournal.com
А, да, есть :) Разрядной сетки не хватило в первый раз.

Date: 2007-05-06 21:22 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
#!/usr/bin/env perl
$mul = $n[0] = $ARGV[0];
$carry = 0;
$i = 0;
do {
        $res = $n[$i] * $mul + $carry;
        $n[$i+1] = $res % 10 ;
        $carry = int($res / 10);
        $i++;
} while ($n[$i] != 0 || $carry != 1);

$n[$i+1] = 1;

print reverse @n;
print "\n";


Re: #!/usr/bin/python

Date: 2007-05-06 21:51 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Собственно, для 2 я так и решал вручную с помощью bc.

Re: #!/usr/bin/python

Date: 2007-05-06 22:18 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Это понятно. Конструктивное решение, по-моему, предпочтительнее аналитического. Не нужно ни длинных чисел, ни перебора.

Re: #!/usr/bin/python

Date: 2007-05-06 22:44 (UTC)
From: [identity profile] webushka.livejournal.com
Угу, вот тут-то мне встроенной точности перла и не хватило :)

Date: 2007-05-08 18:12 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Четвертая строка, IMHO, нуждается в комментарии.
From: [identity profile] dauzh.livejournal.com
В некотором числе переставили цифры(как-то) и получили число, вдвое больше первого, потом переставили цифры и получили число, втрое больше первого, потом еще как-то переставили цифры и получили число, вчетверо больше первого, потом впятеро, а потом еще и вшестеро. На этом успокоились. Что это за число?
From: [identity profile] dauzh.livejournal.com
Здорово! Про девятки не знал.
Еще интересная постановка(ответа не знаю) - в некотором числе вычеркнули некоторую цифру, от этого оно уменьшилось в 2 раза. Если вычеркнуть другую цифру - то уменьшится в три раза. И так далее, но, например, на 6 успокоиться. Такое найдется?
From: [identity profile] dauzh.livejournal.com
Ну да, я не подумал. Спасибо.