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

<center>

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

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

题目描述

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




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




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

输入

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

输出

一行,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;
}
View Code

 

 
全部评论

相关推荐

10-07 20:48
门头沟学院 Java
听说改名就会有offer:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务