Определить f (0) = 1 и f (n) как число различных способов n можно выразить как сумму целых степеней 2, используя каждую мощность не больше, чем, например twice.For, F (10) = 5, так как существует пять различных способов выразить 10:Изучая количество различных способов, число может быть выражено как сумма степеней 2
- 1 + 1 + 8
- 1 + 1 + 4 + 4
- 1 + 1 + 2 + 2 + 4
- 2 + 4 + 4
- 2 + 8
что е (п) для данного 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. По крайней мере, покажите нам, что вы пробовали. –
Я отредактировал этот вопрос и теперь вы можете увидеть мой код.if i make f (0) = 1 здесь, тогда этот код не будет работать. –