[英]Python code that finds the number of palindromes
我很困惑,我不知道我應該做什么樣的方程式。 除了 1 之外,我想不出任何滿足這個條件的東西。 你能給我一些關於如何編寫這段代碼的指導嗎?
例如,讓我輸入 3 作為數字 n。 從 ((2 ^ n) -1) 來 = 7。我需要找到一個 7 位回文數,例如 1670761
我相信您的意思是回文-向后閱讀的單詞與通常相同。
我們可以像這樣檢查一個字符串是否是回文:
def is_palindrome(string):
return(string == string[::-1])
然后我們可以遍歷一個范圍內的所有 ns 並像這樣檢查:
for n in range(1000):
if is_palindrome(str(2**n-1)):print(n,2**n-1)
此代碼應該可以工作:
def len_x_palimdrome(x,f,start = ""):
#f - a callable object taking one input and returning a bool
nums = "0123456789"
for i in nums:
if x == 1:
if f(int(start+i+start)):
return(i)
elif x == 2:
if f(int(start+i*2+start)):
return(i*2)
else:
a = len_x_palimdrome(x-2,f)
if a != None:
return(i+a+i)
return(None)
function 接收長度和 function lambda 或任何將用作過濾器的東西。 請注意,function 將返回滿足 function 中定義的要求的最低回文。
過濾器示例 function:
def f(n):
if n == 0:
return False
return n%7 == 0
綜上所述:
print(len_x_palimdrome(2**3-1,f))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.