A - 2001 斐波那契

2023-12-22 08:08
文章标签 那契 斐波 2001

本文主要是介绍A - 2001 斐波那契,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Problem Description

斐波那契(Fibonacci,意大利数学家,1170年-1240年)数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……。这个数列从第三项开始,每一项都等于前两项之和。在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
已知斐波那契数列第n项的计算公式如下。在计算时有两种算法:递归和非递归,请给出其中一种算法。
当n=0时,Fib(n)=0,当n=1时,Fib(n)=1,当n>1时,Fib(n)= Fib(n-1)+ Fib(n-2)

Input

第一行是测试数据的组数m,后面跟着m行输入。每行包括一个项数n和一个正整数a。(m,n,a均大于0,且均小于10000000)

Output

输出包含m行,每行对应一个输入,若a不大于Fib(n),则输出Yes,否则输出No(中间没有空行)

Sample Input

3
1 3
10 50
24 20000

Sample Output

No
Yes
Yes
#include <iostream>
using namespace std;
long long fib(int n)
{unsigned long long x=0;unsigned long long y=1;unsigned long long t=n;for(int j=2;j<=n;j++){t=x+y;x=y;y=t;}return t;
}
int main()
{int m,n,a;cin>>m;if((m>0)&&(m<10000000)){for(int i=0;i<m;i++){cin>>n>>a;if((n>0)&&(a>0)&&(n<10000000)&&(a<10000000)){if(a<=fib(n)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}}}return 0;
}

 

这篇关于A - 2001 斐波那契的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523199

相关文章

POJ 2001 Shortest Prefixes(字典树入门)

题目: http://poj.org/problem?id=2001 题意: 找到多个字符串中,各自唯一的最短子串,例如 carte 与 carce 各自唯一的最短子串为cart与carc,即不会与其它字符串的子串重复。 思路: 字典树 解题心得: 更新关键值的时机很重要 代码: #include<stdio.h>#include<string>typedef str

牛客《剑指Offer》 -- 斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 思路 对于n=0,应返回0。 class Solution {public:int Fibonacci(int n) {if(n==0) return 0;if(n==1||n==2) return 1;int a=1,b=1,c;n= n-2;for(int i =0

跳台阶(动态规划/斐波那契变形)

跳台阶 链接:https://www.nowcoder.com/acm/contest/90/A来源:牛客网 题目描述 小明在坐景驰科技研发的无人车到达了目的地。 景驰科技(JingChi.ai)是一家由人工智能技术驱动、以无人驾驶技术为核心的智能出行公司。它将打造面向中国市场的全无人驾驶。 从无人车下来以后,小明看到了一个长长的楼梯。 有一个n级台阶的楼梯,小明一次可以向上跳1

【Trie树】模板题-POJ-2001

题意: 给你若干个单词,写出能每个单词的最短前缀 也就是说这个前缀能准确代表这个单词,和其他单词 without ambiguity  思路: 建立字典树存下这几个单词,ct 数组记录每个节点的子节点数,显然子树宽度只有1的话,这个单词就被确定了,改造一下我们的 find_word 函数就行啦 哦。。这个结构体要怎么搞还坑了我一下,要向下面那样定义! 代码: #include

【佳佳的斐波那契】

题目 思路 我们的目标是T[n]: ∑ 1 < = i < = n i f [ i ] \; \; \; \; \; \; \; \; \; \;\; \; \; \; \; \; \; \; \; \; \; \; \; \; \;\; \; \; \sum_{ 1<=i <=n} if[i] ∑1<=i<=n​if[i] 我们的迭代目标是: T [ n ] → T

斐波那契数列的实现方法

1.递归 int Fib(int n){if(n==0 || n==1){return 1;}else if(n>=2){return Fib(n-1)+Fib(n-2);}} 2.线性算法: long long Fib(long long n){int i;long long last,NextToLast,Answer;if(n==0 || n==1)return

迭代和递归(Python)--乘方、最大公约数、汉诺塔、斐波那契、回文字符串

1.迭代 def iterPower(base,exp):result=1.0while exp>0:result*=baseexp-=1return result 运行结果: 2.递归的乘法运算: def recurMul(a,b):if b==1:return aelse:return a+recurMul(a,b-1) 运行结果: 3.递归乘方

hdu1021新版斐波那契避免超时找规律

/*题目意思是定义一种斐波那契数,然后判断输入n位置的斐波那契数是否能被3整除。 由于斐波那契数超过45(大概)时时间效率极低,因此不能一般做法,需要打表找规律*/ #include<iostream>#include<cstdio>using namespace std;int main(){/*=================__int64 f[50];int i;f[0]=

Leetcode 剑指 Offer II 093.最长的斐波那契子序列的长度

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 如果序列 X_1, X_2, …, X_n 满足下列条件,就说它是 斐波那契式 的: n >= 3对于所有 i + 2 <= n,都有 X_i + X_{i+1

【数据结构与算法】斐波那契额数列用for循环实现

采用递归的方法做了很多重复的工作, 而采用for循环的方法,从底层向上运算, f(1)+f(0)->f(2) f(2)+f(1)->f(3) f(3)+f(2)->f(4) 。。。 f(n-1)+f(n-2)->f(n) 因此,在循环中只要定义三个变量,便能将最后的f(n)求出来