我知道如何制作Fibonacci数的列表,但我不知道如何测试给定的数字是否属于fibonacci列表-我想到的一种方法是生成fib列表。数字直到这个数字,看看它是否属于数组,但肯定有另一种更简单,更快的方法。
有什么想法吗?
发布于 2010-03-12 20:36:27
一个非常好的测试是,当且仅当5 N^2 + 4
或5N^2 – 4
是平方数时,N是斐波那契数。有关如何有效地测试数字是否为平方的想法,请参阅SO discussion。
希望这能有所帮助
发布于 2010-05-13 02:53:55
#!/bin/bash
victim="144"
curl http://aux.planetmath.org/files/objects/7680/fib.txt | sed 's/^[0-9]*//;s/[ \t]//g' | grep "^$victim$" >/dev/null 2>/dev/null
if [[ $? -eq 0 ]] ; then
echo "$victim is a fibonacci number"
else
echo "$victim aint"
fi
发布于 2010-05-13 02:49:59
请参阅wikipedia article about the Fibonacci numbers上的“识别斐波那契数”一节。
https://stackoverflow.com/questions/2432669
复制相似问题