博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
又是斐波那契数列
阅读量:6326 次
发布时间:2019-06-22

本文共 1131 字,大约阅读时间需要 3 分钟。

题目描述在数学中斐波那契数列F是这样定义的:F(n)=F(n-1)+F(n-2),F(0)=1,F(1)=1。现在我有另外一个序列G,G(n)=G(n-1)+G(n-2),G(0)=1,G(1)=t(t>=1)。 你的任务对于给定的i,G(i)和j输出G(j)。输入多组测试数据,对于每组测试数据包含三个正整数i,G(i),j。1 <= i,j <=20, G(i)<100000。输出对于每组数据,如果t存在输出对应的G(j)的值,否则输出-1。样例输入1 1 23 5 43 4 612 17801 19样例输出28-1516847
#include
#include
#include
using namespace std;int aa[21];int fun(int a,int b,int c) { aa[0]=1; for(int i=1;i<=b;i++) //外循环,遍历数组aa[1]=1~b的所有情况 { aa[1]=i; for(int j=2;j<=max(a,c);j++) //由题意打表数组aa(在满足外循环的条件下的aa) { aa[j]=aa[j-1]+aa[j-2]; } if(aa[a]==b) //判断下面写了(个人感觉判断很核心) { return aa[c]; } } return -1;}int main(){ int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { cout<
<

 令a=i;b=g(i);c=j;

大概思路是:外循环:aa[1]的值从1~b,目的是遍历数组aa的所有情况,那为什么i<=b呢?由题目已知条件:g(1)=t,t>=1,所以g(i)>=i 

内循环:j<=max(a,c)是为了保证打表aa数组打完输入要求的值(emmmmm....)

!!判断:若aa[a]=b,即aa[i]=g(i),也就是我输入的a,b 刚好和我遍历的aa数组符合(也就是我们外循环做的事,一种种情况的去试),既然都符合了,那么输出对应的g(j)也没有问题了~

打表类型??

转载于:https://www.cnblogs.com/liufei-/p/9336986.html

你可能感兴趣的文章
NOSQL系列-memcached安装管理与repcached高可用性
查看>>
深入理解及配置ISA Server 2006访问规则
查看>>
网络安全系列之二十八 端口扫描
查看>>
WSUS Technology Overview
查看>>
运营商NAT部署方案探讨
查看>>
Debenham养老金项目关键流程4-Opt in 流程
查看>>
安装和配置SQL Server 2016 With SP1
查看>>
Android Action Bar 加入Back键
查看>>
U盘修复
查看>>
[推建]MSSQL2000中OSQL工具的使用[执行T-sql语句]
查看>>
NFS服务器问题
查看>>
linux系统安全常规优化
查看>>
阿里巴巴的AI价值观,以及“ET大脑”战略
查看>>
Server08 R2 Live Migration 测试 Part 2:Server08 R2 配置
查看>>
Spring Portlet中的webflow
查看>>
云场景实践研究第11期:美柚
查看>>
随想随写
查看>>
【Python之旅】第五篇(二):Python Socket单线程+阻塞模式
查看>>
Powershell 创建炫丽美观的Html报表
查看>>
用Vim敲C代码
查看>>