【发布时间】:2015-11-16 02:33:14
【问题描述】:
我需要编写一个包含前 x 个回文数之和的程序。我真的完全不知道该怎么做。有人可以编写这样的程序(任何语言,但请注明)吗?
目前,我可以使用这个 Haskell 程序打印出前 9000 个回文。我如何编辑它以生成所有前 9000 个回文而不是第 x 个回文?
prefixes 0 = [[k] | k <-['1'..'9']]
prefixes n = [k:s | s <- prefixes (n-1), k <- ['0'..'9']]
p n =
[ reverse s ++ tail s | s <- prefixes n ] ++
[ reverse s ++ s | s <- prefixes n ] ++
p (n+1)
allpals = [[]] ++ p 0
main = do print (allpals !! 9000)
奖励挑战:斐波那契数列的前 x 个数字中的回文数之和如何? >:)
【问题讨论】:
-
回文是一个数字,如 11、22、101、334433、10201 等;可以向前和向后读取的任何数字。如果您指的是第一个问题,我正在寻找的程序将能够获取前 x 个回文并将它们加在一起。例如,如果我将 x 设置为 10,则程序将取 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101,然后将它们相加。
-
欢迎来到 SO!试一试,如果您遇到特定问题,那么 SO 是一个很好的解决方案。听起来这是一项编程基础作业,这里的许多人宁愿帮助您了解是否有办法这样做,而无需简单地给出答案。
-
这不是一个您发布家庭作业问题并期望人们为您解决问题的网站。这是一个网站,如果您表现出合理的努力,您将获得几乎无限的帮助,让您越过您不理解的部分。
-
各位,不要对他太苛刻,让我们给他一个思路。他只是打算开始编程,我们都去过那里。 Vulcanis,我会给你一些基本的想法,希望能引导你找到解决方案。本网站不是为了寻求完整的解决方案。
-
@vulcanis,你的意思是到目前为止你写的代码,对吧?
标签: sequence fibonacci palindrome