一道数列题

小宇认为斐波那契数列是一个非常神奇的数列,他想知道斐波那契数列的第n项能否被3整除。

斐波那契数列:1,1,2,3,5,8……

斐波那契数列递推公式:f1​=1,f2​=1,fn​=fn−1​+fn−2​

输入格式:

一行包含一个整数n,表示数列第n项(1≤n≤45

输出格式:

若斐波那契数列的第n项能被3整除,输出'Y',反之输出'N'(不包含单引号)。

#include<iostream>

using namespace std;

long long fei(int n)

{

if(n==1||n==2) return 1;

long long a=1,b=1;

long long next;

for(int i=3;i<=n;i++)

{

next=a+b;

a=b;

b=next;

}

return b;

}

int main()

{

int n;

cin>>n;

if(fei(n)%3==0)

{

cout<<"Y"<<endl;

}

else

{

cout<<"N"<<endl;

}

return 0;

}

关于这道题一开始我定义函数时用的是递归的方法,但5个测试用例只通过了3个,另外两个是运行超时,改成迭代法就都通过了,说明迭代法更保险。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务