ch1161741637
发表于 2017-9-12 21:34:35
def newfib(n)
first = 1
second = 2
while n>i
temp = (first+ second)%2
if temp==0:
temp=(first+second)/2
first = second
second = temp
else temp !=0:
temp=first+second
first = second
second = temp
谱写未来
发表于 2017-9-13 09:26:02
看看答案
咖喱168
发表于 2017-9-15 09:30:20
嗯嗯
huangyang
发表于 2017-9-21 19:15:51
本帖最后由 huangyang 于 2017-9-21 19:17 编辑
def newfib(n):
num={1:1}
if n==2:
num=2
elif n>2:
num = 2
i=3
while i<=n:
if (num+ num)%2==0:
num=(num+ num)//2
else:
num=(num+ num)
i+=1
return(list(num.values()))
n=int(input('Please input the number of series: '))
print(newfib(n))
SuperBoy007
发表于 2017-9-25 10:37:53
def newfib(n):
a=1
b=2
if n==1:
return 1
elif n==2:
return 2
else:
temp=newfib(n-1)+newfib(n-2)
c=temp if temp%2 else temp//2
return c
myrx98
发表于 2017-9-25 11:29:58
def newfib(n):
if n == 1:
return 1
elif n == 2:
return 2
else:
sm = newfib(n-1) + newfib(n-2)
if sm%2 ==0:
return int(sm/2)
else:
return sm
result = newfib(9)
print(result)
#简单
总有理
发表于 2017-9-25 12:19:05
def newfib(n):
list1 = []
a = 3
if n>1:
list1.append(1)
list1.append(2)
while a<n+1:
if (list1+list1) %2 == 1:
list1.append(list1+list1)
elif (list1+list1) %2 == 0:
list1.append(int((list1+list1)/2))
a+=1
elif n == 1:
list1.append(1)
return list1
流月飞星
发表于 2017-10-25 20:24:03
solomonxian 发表于 2017-8-28 21:16
数列形式变化不大
能解释一下代码吗~看不懂了,谢谢
啊啊aa
发表于 2017-10-26 09:52:47
def fib(cnt):
a,b=1,2
while cnt:
print(a)
a,b=b,a+b
if b%2 == 0:
b = b//2
cnt -= 1
fib(12)
solomonxian
发表于 2017-10-27 18:51:05
流月飞星 发表于 2017-10-25 20:24
能解释一下代码吗~看不懂了,谢谢
一句一句来是这样的
def newfib(n):
a = 1
b = 2
for i in range(1,n):
if (a+b)%2:
temp = a
a = b
b = temp + a
else:
temp = a
a = b
b = (temp + a)//2
return a
流月飞星
发表于 2017-10-27 19:31:40
solomonxian 发表于 2017-10-27 18:51
一句一句来是这样的
明白了,多谢{:5_108:}{:5_108:}{:5_108:}
shigure_takimi
发表于 2017-12-2 03:17:44
本帖最后由 shigure_takimi 于 2017-12-2 03:19 编辑
def newfib(n):
fib =
fib = 1
fib = 2
for i in range(2, n):
fib = fib + fib
if fib%2 == 0:
fib //= 2
return fib
print(newfib(12))
##输出:
776667
发表于 2017-12-27 16:26:52
def fun87(x):
if x == 1:
return 1
if x == 2:
return 2
if not (fun87(x-2) + fun87(x-1))%2:
return (fun87(x-2) + fun87(x-1))//2
return fun87(x-2) + fun87(x-1)
if __name__ == '__main__':
result =
print(result)
咕咕鸡鸽鸽
发表于 2019-3-2 13:52:06
kankan
永恒的蓝色梦想
发表于 2019-8-1 18:47:15
本帖最后由 永恒的蓝色梦想 于 2020-3-22 16:47 编辑
生成器:def newfib(n):
a=1
b=2
for _ in range(n):
yield a
l=a+b
a,b=b,l if l&1 else l//2
小陨aoq
发表于 2020-7-31 20:25:02
学习学习
夶夶
发表于 2020-8-3 17:19:28
{:5_108:}
19971023
发表于 2020-8-6 10:42:25
1
aironeng
发表于 2020-12-9 08:44:15
学习
holiday_python
发表于 2021-4-11 21:38:36
看看答案