每日一刷——9.26——ACM训练题——Fibonacci Again

news/2024/10/7 2:09:44 标签: 算法, c++, 学习

题目描述: 

There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).

Input

Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000).

Output

Print the word "yes" if 3 divide evenly into F(n).

Print the word "no" if not.

 输入样例:

0
1
2
3
4
5

输出样例:

no
no
yes
no
no
no

思路分析:

9.25碎碎念:

1.我感觉需要打点,如果不打点的话,时间计算上估计会超时吧

2.应该用什么东西接收输入的一系列数据,这些数据需要保存吗?是输入一个数据就输出一个yes或no吗?

9.29找到的解决方法:

为了方便求解,我们可以把原式 F(n) = F(n-1) + F(n-2) 等式左右两边都对3取模,即 F(n) %3 = (F(n-1) + F(n-2) ) %3

此式子由数论知识易知可以进一步等价于 F(n) %3 = (F(n-1) %3 + F(n-2) %3) %3。现在我们开始找规律:F(0)%3=1,F(1)%3=2,F(2)%3=(F(1)%3+F(0)%3)%3=0,同理 F(3)%3=2,F(4)%3=2,F(5)%3=1,F(6)%3=0,F(7)%3=1,F(8)%3=1,F(9)%3=2,

这时可以发现 F(0)%3=1,F(1)%3=2 ,又 F(8)%3=1,F(9)%3=2,表明此时已出现循环,即一个完整的循环为:{1,2,0,2,2,1,0,1},既然已经出现了循环,那么此题就可以划为找规律题目了,此问题就迎刃而解了。

代码实现:

#include<iostream>
using namespace std;
 
int main()
{
	int a[8]={1,2,0,2,2,1,0,1},n;
	while(cin>>n)
	{
		if(a[n%8]==0)
		{
			cout<<"yes"<<endl;
		}
		else
		{
			cout<<"no"<<endl;
		}
	}
    return 0;
}

题目分析Again :

7        1

11      2

18      0

29      2

47      2

76      1

123     0

199     1

322     1

确实是发现余数也是按照前两个余数之和等于下一个余数,然后九发现规律,确实是可以有循环,所以这个题目就简化为对8取余,如果得出来的结果充当a数组的下标时,发现确实为0,那么这个数就是可以被3除尽,真的很奇妙!!!

有时候除了打点,也可以考虑一下循环,尤其是本身数字就很有规律时! 


http://www.niftyadmin.cn/n/5692356.html

相关文章

【云原生】云原生架构的反模式

反模式 引言庞大的单体应用单体应用硬拆为微服务缺乏自动化能力的微服务 引言 技术是都有 两面性&#xff0c;企业在信息化过程中&#xff0c;在进行云原生演化时&#xff0c;会出现过分云原生而不根据系统的实际情况&#xff0c;在此举出一些典型的云原生架构反模式的例子&am…

Vue 中引入 ECharts 的详细步骤与示例

在Vue项目中引入ECharts&#xff0c;可以让我们轻松地在前端页面中展示各种图表。ECharts 是一个基于 JavaScript 的开源可视化图表库&#xff0c;它提供了丰富的图表类型和强大的配置选项&#xff0c;使得在Vue项目中集成和使用变得非常方便。 一、准备工作 创建Vue项目&…

BERT论文解读及情感分类实战(论文复现)

BERT论文解读及情感分类实战&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 文章目录 BERT论文解读及情感分类实战&#xff08;论文复现&#xff09;简介BERT文章主要贡献BERT模型架构技术细节任务1 Masked LM&#xff08;MLM&#xff09;任务2 N…

【PostgreSQL】运维篇——监控与日志管理

随着业务的不断发展&#xff0c;数据库的性能和可靠性至关重要&#xff0c;可能会面临各种性能问题&#xff0c;如慢查询、锁争用和资源瓶颈等。 通过配置PostgreSQL的日志记录&#xff0c;数据库管理员可以有效地监控数据库活动&#xff0c;识别性能瓶颈&#xff0c;并进行优…

卷积层是如何学习到图像特征的?

你好啊&#xff0c;我是董董灿。 想搞懂这个问题&#xff0c;需要先了解我们所说的特征指的是什么&#xff1f;然后再了解卷积核是如何学到的特征。 我们一步步来。 1、我们先来理解图像的特征 对于一张原始图像而言&#xff0c;说原始图像是相对于经过卷积处理而言的。 对…

每日学习一个数据结构-默克尔树(Merkle Tree)

文章目录 概述特征构建过程使用场景示例总结 设计目的一、提高数据验证效率二、增强数据安全性三、适用于分布式系统 底层原理一、数据块划分与哈希计算二、二叉树的构建三、默克尔树的应用与优势 更新机制 概述 默克尔树&#xff08;Merkle Tree&#xff09;&#xff0c;也称…

Lucene最新最全面试题及参考答案

目录 Lucene主要功能及应用场景 Lucene 的索引结构是怎样的? Lucene 中的 Segment 是如何工作的? 如何在 Lucene 中实现文档的增删改查? Lucene 中存储的数据类型有哪些? 解释一下 Lucene 的索引过程。 Lucene 的搜索过程包含哪些步骤? 什么是倒排索引?为什么它对…

鸿蒙OpenHarmony

开源鸿蒙系统编译指南 Ubuntu编译环境配置第一步&#xff1a;Shell 改 Bash第二步&#xff1a;安装Git和安装pip3工具第三步&#xff1a;远程仓配置第四步&#xff1a;拉取代码第五步&#xff1a;安装编译环境第六步&#xff1a;本地编译源码 Windows开发环境配置第一步&#x…