又是斐波那契数列

有另一种斐波那契数列:F_0 = 7F 0​ =7,F_1 =11F 1 =11,F_n=F_{n - 1}+F_{n - 2}F n =F n−1​ +F n−2(n≥2)。
输入格式
输入数据有多行组成,每一行上是一个整数 n(n \leq 10^6)n(n≤10 6 )。
输出格式
如果 F n

能被 33 整除,那么打印一行"yes",否则,打印一行"no"。
提示
先使用数组把 10 6 的F i

计算出来,然后每次查询,要不然会超时的。

输出时每行末尾的多余空格,不影响答案正确性

样例输入
0
1
2
3
4
5
样例输出
no
no
yes
no
no
no

用数组把每一项保存,因为第10的6次方个数很大,这里使用%3操作保存每一项

法一

#include<stdio.h>
int a[1000005];//数组定义放在main函数上面
int main(){
    a[0]=7,a[1]=11;
    for(int i=2;i<=1e6;i++){
    	a[i]=(a[i-1]+a[i-2])%3;//方便保存
	}
    int n;
    while(scanf("%d",&n)!=EOF){//循环到文本结束
        if(a[n]%3==0){
        	 printf("yes\n");
         }
        else{
       		printf("no\n");
       }
    }
    return 0;
}

法二

打印出上面数组前面20项,查找规律
数组下标从0开始

#include<stdio.h>
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
       if(n==2||n%4==2){
       	printf("yes\n");
	   }else{
	   	printf("no\n");
	   }
    }
    return 0;
}
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

書盡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值