Игра: предсказать ответ на основе 3 пользовательских входов, 2 самостоятельно созданных входов

add9 = []

add9.append(int(input("Enter 1st 4-digit no.: ")))

print(f"The answer will be 2 and {str(add9[0])[0 :-1]} and {str(add9[0]-2)[-1]} = 2{add9[0]-2}")

add9.append(int(input("Enter 2nd 4-digit no.: ")))

add9.append(9999-add9[1]) 

print(f"The 3rd 4-digit is 9999 - {add9[1]}= {add9[2]}")

add9.append(int(input("Enter 4th 4-digit no.: ")))

add9.append(9999-add9[3]) 

print(f"The 5th 4-digit is 9999 - {add9[2]}= {add9[4]}")


print(f"""
So, 
{add9[0]}+{add9[1]} = {add9[0]+add9[1]}
{add9[0]+add9[1]}+{add9[2]} = {add9[0]+add9[1]+add9[2]}
{add9[0]+add9[1]+add9[2]}+{add9[3]} = {add9[0]+add9[1]+add9[2]+add9[3]}
{add9[0]+add9[1]+add9[2]+add9[3]}+{add9[4]} = {add9[0]+add9[1]+add9[2]+add9[3]+add9[4]}
""")

дает

Enter 1st 4-digit no.: 9999
The answer will be 2 and 999 and 7 = 29997
Enter 2nd 4-digit no.: 2345
The 3rd 4-digit is 9999 - 2345= 7654
Enter 4th 4-digit no.: 6789
The 5th 4-digit is 9999 - 7654= 3210

So,
9999+2345 = 12344
12344+7654 = 19998
19998+6789 = 26787
26787+3210 = 29997


[Program finished]

Код работает нормально. Это для детей, чтобы продемонстрировать, как произвести вывод, используя 3 входных сигнала от пользователя. Хитрость заключается в том, чтобы вычесть 9999 из 2-го и 3-го введенных пользователем. Я старался использовать как можно более короткий синтаксис.

Изменить: 3-я и 5-я цифры — 9999

Enter 1st 4-digit no.: 9990
The answer will be 2 and 999 and 8 = 29988
Enter 2nd 4-digit no.: 6667
The 3rd 4-digit is 9999 - 6667= 3332
Enter 4th 4-digit no.: 8888
The 5th 4-digit is 9999 - 3332= 1111

So,
9990+6667 = 16657
16657+3332 = 19989
19989+8888 = 28877
28877+1111 = 29988


[Program finished]

работает как ожидалось

Из калькулятора,

 Calculation 1  
(1/1) 9,990. +
(1/2) 6,667. =
(1/3) 16,657. +
(1/4) 3,332. =
(1/5) 19,989. +
(1/6) 8,888. =
(1/7) 28,877. +
(1/8) 1,111. =
(1/9) 29,988. 

1 ответ
1

  • Для начала я бы не стал все заносить в список. Есть преимущества в размещении всех пяти чисел в последовательности, но это не должно происходить до конца.
  • Вы можете расширить свое объяснение «ответа». Во-первых, неясно, что вы подразумеваете под словом «ответ»; это фактически четвертая сумма. Кроме того, вы можете расширить свое объяснение для каждого из терминов, входящих в эту четвертую сумму. Некоторые из обозначений, которые я показал, возможно, немного продвинуты для детей, поэтому упростите их на свое усмотрение.
  • Вы должны заменить свои выражения внизу циклом.
  • По возможности, вы должны формулировать свои операции как математические (мода, деление по этажам), а не на основе строк.
  • Думаю, у вас алгоритмическая проблема? Когда я вхожу 9990 для первого числа прогнозируемая и фактическая четвертая сумма расходятся.

Предложенный

a = int(input("Enter 1st 4-digit no.: "))
sum4 = int(f'2{a//10}{(a - 2)%10}')
print(
    f"The fourth sum will be the concatenation of:"
    f"n  2"
    f"n  ⌊{a}/10⌋ = {a//10}"
    f"n  mod({a} - 2, 10) = {(a - 2)%10}"
    f"n= {sum4}"
    f"n"
)

b = int(input("Enter 2nd 4-digit no.: "))
c = 9999 - b
print(f"The 3rd 4-digit no. is 9999 - {b} = {c}")

d = int(input("Enter 4th 4-digit no.: "))
e = 9999 - d
print(f"The 5th 4-digit no. is 9999 - {c} = {e}")

nums = (a, b, c, d, e)
print('nSo,')
for i in range(4):
    addend = sum(nums[:i+1])
    augend = nums[i+1]
    print(f'{addend} + {augend} = {addend+augend}')

Выход

Enter 1st 4-digit no.: 9999
The fourth sum will be the concatenation of:
  2
  ⌊9999/10⌋ = 999
  mod(9999 - 2, 10) = 7
= 29997

Enter 2nd 4-digit no.: 2345
The 3rd 4-digit no. is 9999 - 2345 = 7654
Enter 4th 4-digit no.: 6789
The 5th 4-digit no. is 9999 - 7654 = 3210

So,
9999 + 2345 = 12344
12344 + 7654 = 19998
19998 + 6789 = 26787
26787 + 3210 = 29997

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *