condition = range(10,200)
print("This trick only works for range 10 to 199 included")
number1 = int(input("Enter first number:"))
number2 = int(input("Enter second number:"))
def print2(res1, res2):
res3 = 100+(number1-100)+(number2-100)
res4 = (number1-100) * (number2 -100)
print(f"""
Step 1 :
{number1} is {number1-100} greater than 100
And
{number2} is {number2-100} greater than 100
Hence,
The first 2 digits are 100+({number1-100})+({number2-100}) = {res3}
The last digits are {number1-100} * {number2 -100} = {res4}
Total {res1}{res2}
""")
def print1(res1, res2):
print(f"""
Step 1 :
{number1} is {number1-100} greater than 100
And
{number2} is {number2-100} greater than 100
Hence,
The first 3 digits are 100+({number1-100})+({number2-100}) = {res1}
The last 2 digits are {number1-100} * {number2 -100} = {res2}
Total {res1}{res2}
""")
def main(number1, number2):
if number1 in condition and number2 in condition:
if number1 == number2 == 100:
print(10000)
elif max(number1, number2) < 100:
res1 = 100 - (200 - (number1+number2))
res2 = (number1-100)*(number2-100)
if len(str(res2)) < 2:
res2 = str(0)+str(res2)
print1(res1, res2)
elif len(str(res2)) > 2:
res1 = res1 + int(str(res2)[:-2])
res2 = str(res2)[-2:]
print2(res1, res2)
else:
res1 = res1
res2 = str(res2)[-2:]
print2(res1, res2)
elif min (number1, number2) > 100:
res1 = 100 + (number1+number2-200)
res2 = (number1-100)*(number2-100)
if len(str(res2)) < 2:
res2 = str(0)+str(res2)
print1(res1, res2)
elif len(str(res2)) > 2:
res1 = res1 + int(str(res2)[:-2])
res2 = str(res2)[-2:]
print2(res1, res2)
else:
print1(res1, res2)
else :
res1 = max(number1, number2) - 100
res2 = min(number1, number2) - 100
res3 = int(str(number1 + res2) + "00")
res4 = res1*res2
print(f"""
Step 1 : {max(number1, number2)} - {100} = {res1}
Step 2 : ({number2} + {res1}) + 00 = {res3}
Step 3 : {res1} x {res2} = {res4}
Total
{res3}+({res4}) = {res3+res4}
""")
else:
print("This trick won't work", number1, number2)
exit(0)
main(number1, number2)
Пример 1. Когда числа меньше 100
This trick only works for range 10 to 199 included
Enter first number:56
Enter second number:67
Step 1 :
56 is -44 greater than 100
And
67 is -33 greater than 100
Hence,
The first 2 digits are 100+(-44)+(-33) = 23
The last digits are -44 * -33 = 1452
Total 3752
[Program finished]
Пример 2: Когда больше 100
This trick only works for range 10 to 199 included
Enter first number:110
Enter second number:120
Step 1 :
110 is 10 greater than 100
And
120 is 20 greater than 100
Hence,
The first 2 digits are 100+(10)+(20) = 130
The last digits are 10 * 20 = 200
Total 13200
[Program finished]
Пример 3: один меньше, а другой больше 100
This trick only works for range 10 to 199 included
Enter first number:126
Enter second number:98
Step 1 : 126 - 100 = 26
Step 2 : (98 + 26) + 00 = 12400
Step 3 : 26 x -2 = -52
Total
12400+(-52) = 12348
[Program finished]
Мы не можем изменить вывод, так как дети могут не понимать технический жаргон. Хотя, я признаю, он не так хорошо отформатирован. Я сделал все что мог. Цель состоит в том, чтобы дети пошагово проверяли, где они ошибаются.