中石油 【递归】普通递归关系

问题 B: 【递归】普通递归关系

时间限制: 1 Sec  内存限制: 128 MB
提交: 24  解决: 24
[提交][状态][讨论版]

题目描述

考虑以下定义在非负整数n上的递归关系:

其中a、b是满足以下两个条件的常数:

给定f0, f1, a, b和 n,请你写一个程序计算F(n),可以假定F(n)是绝对值不超过109的整数(四舍五入)。

输入

输入文件一行依次给出5个数,f0 ,f1,a,b和n,f0,f1是绝对值不超过109 ,n是非负整数,不超过109。另外,a、b是满足上述条件的实数,且|a|,|b|≤106 。

输出

一行,F(n)的值

样例输入

0 1 1 1 20

样例输出

6765
代码:

#include <iostream>
#include <cstdio>

using namespace std;

double f0,f1;
int n;
double a,b;

long int f(int n){
    if(n==0){
        return (long int)f0;
    }
    if(n==1){
        return (long int)f1;
    }else{
        return (long int)(a*f(n-1)+b*f(n-2));
    }
}

int main()
{
    cin>>f0>>f1>>a>>b>>n;
    printf("%ld",f(n));
    return 0;
}

 
时间: 2024-08-24 13:33:32

中石油 【递归】普通递归关系的相关文章

Why coding like This ------ 递归以及枚举中的递归

title: "Why coding like This -- 递归以及枚举中的递归" date: 2015-08-28 21:34:16 categories: "why coding like this" tags: [swift进阶] Topic 1: 输入一个数组xs:[Int],对全体元素求和. Discuss 思路一: Hey,伙计,遍历数组,逐个相加,so easy! code: func sum1(xs:[Int])->Int{ var sum

中石油出售千亿资产背后暗藏啥玄机?

继三月份,两大石油巨头之一的中石化提出规模庞大的销售业务"混改"计划后,5月12日,中国石油天然气股份有限公司(中石油集团旗下上市公司,下称"中石油")发布公告:将设立东部管道公司,并通过产权交易所公开转让东部管道公司100%股权. 即将设立的东部管道公司,主要出资为西气东输管道分公司管理的与西气东输一.二线相关的资产及负债,以及管道建设项目经理部核算的与西气东输二线相关的资产及负债.这也就是说,中石油股份将彻底出售西气东输一线.二线. 在本次公告中,中石油股份语焉

静态路由中的递归路由原理与冗余备份链路的实现

如图1-4的拓扑中, R1去往R4的10.1.1.0/24网段,可以配置静态路由并以R2的fa0/1接口的IP地址为下一跳,但当R2的fa0/1端口为down时,需手动把静态路由切换到R3的fa0/1接口的IP地址,反之亦然. 图1-4 当链路数量很大时,在静态路由中关联直连网段中的下一跳地址,配置工作将非常巨大.此时可以在静态路由中关联非直连网段中的下一跳地址.例如当R1要访问R4上的直连网段10.1.1.0/24时,可以将R1的静态路由直接关联R4的fa0/0接口的IP地址 (ip rout

数据结构二叉树——建立二叉树、中序递归遍历、非递归遍历、层次遍历

数据结构二叉树-- 编写函数实现:建立二叉树.中序递归遍历.借助栈实现中序非递归遍历.借助队列实现层次遍历.求高度.结点数.叶子数及交换左右子树. ("."表示空子树) #include<stdio.h> #include<stdlib.h> //***********二叉树链表节点结构 typedef char DataType; typedef struct Node {  DataType data;  struct Node*LChild;  struc

中根递归遍历二叉树,并输出权值大于50的节点

/** * @author 黄志伟 */ public class Search{ public static void main(String[] args){ Node A = new Node(); A.setValue(51); Node B = new Node(); B.setValue(52); Node C = new Node(); C.setValue(53); Node D = new Node(); D.setValue(49); Node E = new Node();

php中通过递归实现删除目录下的所有文件

(本文转载于:www.klsele.com.cn) php中通过递归实现删除目录下的所有文件.,有需要的朋友可以参考下. 最近遇到一个实际问题,需要清空制定目录下的所有文件及清空数据库.清空数据库不难,但要如何递归删除一个目录下的所有文件呢. 于是去网上研究了下资料再加上自己琢磨解决了这一问题. 先贴代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php function delFile($dirName){     if ($handl

MVC的Views中使用递归生成Html【转】

在开发过程中往往会有一个需求,就是将一个树状的数据结构在视图中表示出来.例如最传统的多级分类,系统中有一系列根分类,每个分类中又带有一些子分类,而我们的目标便是在页面上生成一个由ul和li嵌套组成的HTML结构.这个问题看似简单,但是如何让实现变的轻松.易于使用也是一个值得讨论的问题.这次就来谈谈这部分的情况. 实现目标 首先来明确一下实现目标.例如我们有一个Category对象,表示一个类别: public class Category { public string Name { get;

C#函数式编程中的递归调用之尾递归详解

关于递归相信大家已经熟悉的不能再熟悉了,所以笔者在这里就不多费口舌,不懂的读者们可以在博客园中找到很多与之相关的博客.下面我们直接切入正题,开始介绍尾递归. 尾递归 普通递归和尾递归如果仅仅只是从代码的角度出发来看,我们可能发现不了他的特点,所以笔者利用两张堆栈上的图来展示具体的差距在哪,首先我们来看看普通的递归调用的情况,如下图1.1所示: 假设这里执行的函数是Func1,并且Func1中通过递归调用了自己,那么我们可以看到栈上在每次调用Func1的时候都会重新将函数返回地址等其他参数放入栈中

2018.3.31 java中的递归

java中的递归 1.概念 定义一个方法时,出现本方法调用本方法的过程,称之为递归 2.特点 必然有一个边界条件 使用递归代码往往更简洁,可读性强 3.什么时候使用递归 n的阶乘和n的累加定义 f(n) =1 f(n)=f(n)*f(n-1) 4.普通实现与递归实现的比较 普通实现 //计算5的阶乘 public class Demo { public static void main(String[] args) { int sum = 1; for (int i =5; i >=1; i--

尾递归 递归函数中,递归调用是整个函数体中最后的语句,且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归,空间复杂度是O(1)

什么是递归深度 递归深度就是递归函数在内存中,同时存在的最大次数. 例如下面这段求阶乘的代码: Java: int factorial(int n) { if (n == 1) { return 1; } return factorial(n - 1) * n; } Python: def factorial(n): if n == 1: return 1 return factorial(n-1) * n C++: int factorial(int n) { if (n == 1) { re