Форум » Выполнение и анализ алгоритмов для исполнителей » Не сходится ответ в задаче 297 » Ответить

Не сходится ответ в задаче 297

R2D2: Получается ответ 2899, а в файле 1899 [pre2] def f(n): n=str(n) n='0'*(16-len(n))+n n=n[::-1] s=0 for j in range(16): if j%2==0: s+=int(n[j]) else: x=str(int(n[j])*2) if len(x)==1: s+=int(x) else: s+=int(x[0])+int(x[1]) return s for n in range (9999999999999999+1): if f(n)==30: print(n%100000000) break [/pre2] Проверка: Для карты 0000 0000 0000 1899 9981 0000 0000 0000 Четные 9+8=17 Нечетные 9+1=10 Итого 16+10=27 Для карты 0000 0001 0000 1899 9981 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+1=10 Итого 16+10=28 Для карты 0000 0002 0000 1899 9981 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+1=10 Итого 16+10=29 Для карты 0000 0000 0000 2899 9982 0000 0000 0000 Четные 9+8=17 Нечетные 9+2=11 Итого 16+10=28 Для карты 0000 0001 0000 2899 9982 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+2=11 Итого 16+10=29 Для карты 0000 0002 0000 2899 9982 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+2=11 Итого 16+10=30

Ответов - 7

R2D2: Для карты 0000 0000 0000 1899 9981 0000 0000 0000 Четные 9+8=17 Нечетные 9+1=10 Итого 17+10=27 Для карты 0000 0001 0000 1899 9981 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+1=10 Итого 18+10=28 Для карты 0000 0002 0000 1899 9981 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+1=10 Итого 19+10=29 Для карты 0000 0000 0000 2899 9982 0000 0000 0000 Четные 9+8=17 Нечетные 9+2=11 Итого 17+11=28 Для карты 0000 0001 0000 2899 9982 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+2=11 Итого 18+11=29 Для карты 0000 0002 0000 2899 9982 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+2=11 Итого 19+11=30

R2D2: Для карты 0000 0000 0000 1899 9981 0000 0000 0000 Четные 9+8=17 Нечетные 9+1=10 Итого 17+10=27 Для карты 0000 0001 0000 1899 9981 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+1=10 Итого 18+10=28 Для карты 0000 0002 0000 1899 9981 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+1=10 Итого 19+10=29 Для карты 0000 0000 0000 2899 9982 0000 0000 0000 Четные 9+8=17 Нечетные 9+2=11 Итого 17+11=28 Для карты 0000 0001 0000 2899 9982 0000 1000 0000 Четные 9+8+1=18 Нечетные 9+2=11 Итого 18+11=29 Для карты 0000 0002 0000 2899 9982 0000 2000 0000 Четные 9+8+2=19 Нечетные 9+2=11 Итого 19+11=30

R2D2:


R2D2: Для карты 0000 0000 0000 1899 9981 0000 0000 0000 Четные 9+8=17 Нечетные 9+1=10 Итого 17+10=27 Для карты 0000 0000 0000 2899 9982 0000 0000 0000 Четные 9+8=17 Нечетные 9+4=13 Итого 17+11=30 Просьба к модератору(удалите, пожалуйста, верхние проверки ошибочные)

R2D2: Итого 17+13=30

Иван2023: Какой в итоге ответ? * 1899 => 1*2 + 8 + (9*2 -> 1+8) + 9 = 2 + 8 + 9 + 9 = 28 Сумма не равна 30, почему ответ 1899? Минимальное подходящее число * 2899. * 2899 => 2*2 + 8 + (9*2 -> 1+8) + 9 = 4 + 8 + 9 + 9 = 30 Где ошибка?

Ж: Число не может начинаться с 0. Поэтому это число 1000000000001899 [pre2] from itertools import * for c in product(range(10), repeat=15): c=[1]+list(c) suma=0 for i,k in enumerate(c): if i % 2 == 0 and k*2>=10: suma+=(k*2)%10+k*2//10 if i % 2 == 0 and k*2<10: suma += k * 2 if i % 2 == 1 : suma += k if suma==30: print(c[-4:],с) break [/pre2]



полная версия страницы