首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是卢卡斯的号码吗?

这是卢卡斯的号码吗?
EN

Code Golf用户
提问于 2016-04-01 20:30:01
回答 1查看 409关注 0票数 5

编写一个输入大于或等于2的程序或函数。它应该输出一个真实或虚假的值,对应于输入是否为卢卡斯数。您可以从STDIN获取输入,或者从最适合您的来源获取输入。

这个问题不同于这一个,因为这个问题只针对Lucas数,而不是Fibonacci数,而这个问题是Lucas数、Fibonacci数以及它们的两个可能的组合。然而,这一问题是受到这一问题的启发,在某些方面也是类似的。

Lucas数是由以下规则产生的数字:第一个Lucas数是2,第二个卢卡斯数是1,后面的每个项都是前两个的和。是的,它非常类似于斐波纳契序列,但是这有一个额外的优点,就是比斐波那契数更接近黄金比率,phi。

示例输入/输出

代码语言:javascript
复制
Input   Output
--------------
3       True
4       True
7       True
8      False
10     False
3421   False
9349    True

等。

一些限制

  • 您的程序/功能必须在合理的时间内运行。它应该在几秒钟和几分钟内终止,而不是几个小时和几天。
  • 您的程序不能计算到输入号码之前的所有Lucas号。

这是代码高尔夫,所以以字节为单位的最短代码获胜。

EN

回答 1

Code Golf用户

发布于 2016-04-01 21:06:08

MATLAB,43字节

代码语言:javascript
复制
@(n)~all(rem(real(sqrt(5*n^2+[-20 20])),1))

的答复启发

票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/76835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档