NOJ ACM-ICPC Bee

本题需要用到递归的思想,因为考察蜜蜂数量与年数的关系,本质上是一个二阶递推数列,即由上一年的F与M数量来决定下一年的F与M的数量,转化为函数递归问题

在实际编程中,这里有两点需要提醒:

1.递归算法涉及到函数的嵌套调用,X函数与Y函数会相互嵌套,在X函数体内调用Y时,由于Y在之前还未被定义,所以需要在X函数前加上一个Y函数的函数声明,确保可以嵌套调用。

2.关于输入与输出,本人最开始采用定义了一个大数组来输入输出,但是提交后总是显示RE(一般原因为数组过小,或者数组过大)所以最好的方法是改为用一个无上限的循环来读入,同时输出,读一个输出一个,对于没有规定输入输出上限的题目,采用这种方法无疑是最为稳妥的。

#include <iostream>

using namespace std;

int Y(int i);
int X(int i)
{
    if(i==0)return 0;
    if(i==1)return 1;
    else return X(i-1)+Y(i-1);
}

int Y(int i)
{
    if(i==0)return 1;
    if(i==1)return 1;
    else return X(i-1)+1;
}

int main()
{
    int a;
    do{
        cin>>a;
        if(a==-1)break;
       cout<<X(a)<<' '<<X(a)+Y(a)<<endl;
    }while(1);

    return 0;
}
 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值