在这里,我实现了一个非常简单的计算器,只有5个操作。
有2个整数输入
代码旨在通过执行这些操作,输出从第一个输入到第二个输入的可能性(程序)的数量:
-
将屏幕上的当前数字乘以2
-
将屏幕上的当前数字乘以3
-
在屏幕上的当前号码上加5
-
在屏幕上的当前号码上加7
-
取屏幕上当前数字的平方
一些测试代码
样本输入1:
2个
10个
样本输出1:
0个
样本输入2:
三
20个
样本输出2:
5个
样本输入3:
5个
100个
样本输出3:
34660个
问题是由于某种原因,我在测试样本3中得到了34658!我不知道我错在哪一部分
x = int(input())
y = int(input())
if x > 1 and y > x:
num_of_programs = [None] * (y + 1)
for i in range(x):
num_of_programs[i] = 0
num_of_programs[x] = 1
for i in range(x + 1, y + 1):
num_of_programs[i] = 0
if i % 2 == 0 and i // 2 >= x:
num_of_programs[i] += num_of_programs[i // 2]
if i % 3 == 0 and i // 3 >= x:
num_of_programs[i] += num_of_programs[i // 3]
if i - 5 >= x:
num_of_programs[i] += num_of_programs[i - 5]
if i - 7 >= x:
num_of_programs[i] += num_of_programs[i - 7]
if i ** (1/2) == x:
num_of_programs[i] += num_of_programs[int(i ** (1/2))]
print(num_of_programs[y])