在this问题中,我想找到min(m + k),使得mCk = n,我编写了一个代码来暴力破解我的序列,问题是我的代码不够快,所以我想减少for 循环随着
j
进度 的长度
import math
print("Enter the range of the search, the result is in the form of $(n,a_n)$")
m=int(input())
for n in range (2,m+1):
C=[]
stop=1
k=0
for i in range (1, n+1):
s=0
if stop==-1:
break
for j in range(1, math.floor(i/2)+1-k):
if math.comb(i,j)>n:
k=k+1
break
if math.comb(i,j)==n:
C.insert(s,i+j )
s=s+1
if min(C)<n+1:
stop=-1
break
print(f"({n},{min(C)}), ")
问题是写这样的东西:
k=0
for i in range (0,100-k+1):
if i%2==0
k=k+1
不会减少范围的长度,这是我需要用我的代码做的事情
我试图寻找这个问题的解决方案,但我只找到了不相关的堆栈溢出问题。
@Sieha 的评论是正确的。循环长度无法更改。
A
while
循环似乎更合适。
另一种选择是使用
continue
关键字而不是 break
。
continue
将忽略该迭代的循环的其余部分。
for i in range(5):
print(f"iteration {i}")
if i>1:
continue
print("skipped when i>i")
将会输出
iteration 0
skipped when i>2
iteration 1
skipped when i>2
iteration 2
iteration 3
迭代4