-2
將f(0)= 1和f(n)定義爲不同方式的數量n可以表示爲整數冪的和使用每個功率不超過twice.For例子更中,f(10)= 5,因爲有五種不同的方式來表達10 2:探索一個數的不同方式的數量可以表示爲2的冪的和
- 1 + 1 + 8
- 1 + 1 + 4 + 4
- 1 + 1 + 2 + 2 + 4
- 2 + 4 + 4
- 2 + 8
什麼是F(N)爲給定的n.you可以使用任何計算機語言,
import math
def powOfTwo(n):
i=0
while(pow(2,i)<=n):
if (pow(2,i)==n):
return True
else:
i=i+1
return False
def noWays(n):
if n==1:
return 1
elif n==0:
return 0
else:
if (n%2==0):
if (powOfTwo(n-2) and n-2!=2):
return (1+noWays((n-2)/2)+noWays(n/2))
else:
return (noWays((n-2)/2)+noWays(n/2))
else:
if (powOfTwo(n-1)and n-1!=2):
return (1+noWays((n-1)/2))
else:
return (noWays((n-1)/2))
n=int(input())
v=noWays(n)
print(v)
這不是stackoverflow的工作原理。至少向我們展示你的嘗試。 –
我編輯了這個問題,現在你可以看到我的代碼。如果我在這裏使f(0)= 1,那麼這段代碼將不起作用。 –