Как найти "счастливый билет"


banda аватар

banda - Posted on 14 Январь 2009

"Счастливым" считается такой билет, в котором последовательное сложение цифр номера дает число 7. Например, 62431 -- номер "счастливого" билета (6 + 2 + 4 + 3 + 1 = 16, 1 + 6 = 7).

Можно найти такой билет для номера мобилы, аськ и т.п.

Набираем прямо из консоли и напишем результат в какой нибудь текстовый файл, например ~/bilets.txt

$ perl -e 'foreach (1000000..9999999){$t=$_;while(!/^.$/){s/\d/$&+/g;s/\+$//;$_=eval}print "$t\n" if $_ == 7}' > ~/bilets.txt
5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

вот на питоне (на x mod 9 обрати внимание. :-p):

for x in range(10000000):
    if (x mod 9) == 7: 
       print "you're lucky!!! your number is " , x

круто. математика рулит. у меня дейсвтительно решение в лоб. но твой скрипт явно на коленке написан, и вот правильный вариант. (на x % 9 обрати внимание. :-p):

#!/usr/bin/python
for x in xrange(1000000,9999999):
    if (x % 9) == 7: 
       print  x

а вот тот же алгоритм на перле

perl -e 'foreach (1000000..9999999) { print "$_\n" if ($_ % 9) == 7}'

спасибо за идею
P.S. как ты нашел эту скрипт?

Странные вы люди
самое интересное в этой теме вот что:

~$ perl -e 'foreach (1000000..9999999) { print "$_\n" if ($_ % 9) == 7}' | wc -l
1000000

сегодня день пафоса какой то Ж:-)
Мне вот тоже очевидно что тут странного и интересного. Уж снизойди до недогадливых.
И интересно таки как было найдено решение про mod 9, ход мысли. Если он был

и?

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.