SDUT---OJ《程序设计基础(B)II》实验3--递推

这篇博客介绍了多个递推问题的实例,包括养兔子、母牛繁殖、黄金分割比例数列、骨牌铺放、爬楼梯、书信错误传递、切饼、拍皮球、蟠桃记和马拦过河卒等经典问题,涵盖了数学、算法和逻辑推理等多个方面。
摘要由CSDN通过智能技术生成

A - 养兔子

Description

一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。

Input

输入为一个整数n(1 ≤ n ≤ 90)。

Output

对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。

Sample

Input 

2

Output 

2

Hint

数据类型可以用64位整数:long long

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    while(~scanf("%d",&n)&&n)
    {
        long long int f1,f2,f3;
        int i;
        f1=f2=1;
        if(n==1)
        {
            printf("%lld\n",f1);
        }
        else
        {
            for(i=2;i<=n;i++)
            {
                f3=f2+f1;
                f1=f2;
                f2=f3;
            }
            printf("%lld\n",f3);
        }
    }
    return 0;
}

B - 母牛的故事

Description

有一对夫妇买了一头母牛,它从第2年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

Input

输入为一个整数n(0< n< 55)。

Output

输出在第n年的时候母牛的数量。

Sample

Input 

5

Output 

6
#include <bits/stdc++.h>

using namespace std;

int f(int n)
{
    if(n==1)
    {
        return 1;
    }
    else if(n==2)
    {
        return 2;
    }
    else if(n==3)
    {
        return 3;
    }
    else
    {
        return f(n-1)+f(n-3);
    }
}
int main()
{
    int n;
    while(~scanf("%d",&n)&&n)
    {
        int F;
        F=f(n);
        printf("%d\n",F);
    }
    return 0;
}

C - 鬼吹灯之龙岭迷窟

Description

    在古希腊时期,有一天毕达哥拉斯走在街上,在经过铁匠铺前他听到铁匠打铁的声音非常好听,于是驻足倾听。他发现铁匠打铁节奏很有规律,这个声音的比例被毕达哥拉斯用数学的方式表达出来。

    这个比例就叫做黄金分割比,它是指将整体一分为二,较大部分与整体部分的比值等于较小部分与较大部分的比

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值