求大神帮忙,我连题目都看不懂,不知道题目要求的结果到底是什么?
题意是,我假设你已经写好了获取Fibonacci数列的函数。
然后例子的输入是3,1,3,5,第一个3的意思是总共3组测试数据。然后后面的就是测试数据,要求你输出Fibonacci数列第一个,第三个,第五个数。
python3
>>> def fib(n):
if n<0: return None
if n<=1: return (0,1)[n]
a,b = 0,1
for i in range(n-1):
a, b = b, a+b
return b
>>> fib(9) # 第九个 Fibonacci 数
34
斐波那契PHP实现
function fibonacci($n){
if($n == 1 || $n == 2)
return 1;
else
return fibonacci($n - 1) + fibonacci($n - 2);
}
其他的程序逻辑控制下就ok了
样例输入 样例输出
3 表示 后面有三个测试数据
1 返回第一个Fibonacc数 1 第一个Fibonacc数为1
3 返回第三个Fibonacc数 2 第三个Fibonacc数为2
5 返回第五个Fibnoacc数 5 第5个为5
其实就是计算第N个Fibnoacc数是多少的算法题。那个输入的第一个参数对于算法没啥具体意义。
这样子就简单了
def getB(n):
if n<=2:
return 1
one=two=1
for i in range(3,n+1):
two,one=one+two,two
return two
// 斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到
function fib($max){
$n = 0;
$a = 0;
$b = 1;
while ($n<$max) {
echo $b."\t";
$tmp_a = $a;
$a = $b;
$b = $tmp_a+$b;
$n++;
}
}
fib(8);
int fib(int n)
{
int A1 =1,A2 =1;
int nTotal = 1;
if(n ==1||n==2)
return 1;
for(int i = 3;i<=n;i++)
{
nTotal = A1 + A2;
A1 = A2;
A2 = nTotal;
}
return nTotal;
}
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
题意就是这样