我正在尝试将循环转换为递归算法。相当简单,我只是无法像范围一样使它们在汇总值时忽略n值。
这是迭代函数:
def function(n):
total=0
for i in range(1,n,2):
total += i
print(total)
function(5) # Output: 4
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的递归:
def function1(n):
if n==1:
return n
else:
return n+function1(n-2)
function(5) # Output: 9
Run Code Online (Sandbox Code Playgroud)
所以,function1做总结的n时候就应该被忽略。原因range()不包括停止号。
然后,我尝试:
def f1(n):
def f_recursive(n):
if n==1 or n==2:
return 1
elif n==0:
return 0
else:
return n + f_recursive(n - 2)
return f_recursive(n) - n
print(f1(5)) # Output: 4 Yeiii!!
Run Code Online (Sandbox Code Playgroud)
但是后来我意识到,这仅适用于奇数。不连。如果f1(6)得到的话4,它应该是何时9,因为它最终是11-6 = 9。
我真傻,我尝试过:
def …Run Code Online (Sandbox Code Playgroud) 试图转换DateTime.now()成这样:2019-06-04T12:08:56.235-0700
API 文档坚持认为这是数据格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'但我无法弄清楚 Dart 的格式。甚至连 python 也没有。
我已经尝试过now.toIso8601String(),但它并没有完全解决它(即2019-12-03T17:50:23.476164)。它缺少最后-一部分和一位数字。flutter 中的 API 调用返回 a{code:415 message HTTP 415 Unsupported Media Type}作为结果。
我缺少什么?