中石油 【递归】普通递归关系
<center>
提交: 24 解决: 24
[提交][状态][讨论版] </center> View Code
问题 B: 【递归】普通递归关系
时间限制: 1 Sec 内存限制: 128 MB提交: 24 解决: 24
[提交][状态][讨论版] </center>
题目描述
考虑以下定义在非负整数n上的递归关系:
其中a、b是满足以下两个条件的常数:
给定f 0, f 1, a, b和 n,请你写一个程序计算F(n),可以假定F(n)是绝对值不超过10 9的整数(四舍五入)。
其中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; }