1. 程式人生 > >11.27 遞迴和植物大戰殭屍

11.27 遞迴和植物大戰殭屍

Description

這是一題簡單的題目,考的只是你的數學而已。我一直都很好奇愚公一家到底有多少人。好吧,毛學姐說你們會幫我的。假設愚公家族 每個人的一生是這樣度過的:(當他回首往事的時候。。。開個玩笑,請無視) 頭2020年用來生長髮育以及挖山,第2121年(可以理解為2121歲的時候)開始 每年生下一個孩子( 自交,任性, 沒妻子,全生男,且不考慮死亡),當然還要去挖山。我們預設愚公11歲的時候為第一年(第2121年愚公生下第一胎),求第NN年愚公家族(愚公家族不需要妻子,別考慮太多)有多少人。

Input

有多組測試資料,每組佔一行,包括一個數N(0<N<=60)N(0<N<=60),N為第N年。

Output

對於每組測試,輸出整數MM,MM為愚公家族的人數
題解:遞迴問題,前20年都是1個人,從21年開始f(n)=f(n-1)+f(n-20)
程式碼如下:

#include <stdio.h>
int f(int n)
{
    int ans;
    if(n<=20){
        return 1;
    }
    else if(n>20){
        ans=f(n-1)+f(n-20);
    }
    return ans;
}
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
    printf("%d\n",f(n));}
    return 0;
}

加特林大戰殭屍

Description

現在又到了毛學姐玩生化危機的時間,問題很簡單。現在有一把自動加特林機槍,它每秒發射一顆子彈,子彈的飛行速度是V0 。在它的面前有L米的空地,你可以假設機槍是一個點。現在有個一隻殭屍來襲,他以速度V1V
勻速向加特林機槍走去。殭屍被加特林子彈擊中n次才會gg,殭屍在走到加特林機槍的位置後,會用酸液對其進行攻擊,只需2s就能摧毀加特林。問:強大的加特林機槍能不能守住這塊空地呢?

Input

輸入包含多組資料,每組包含四個數L,VO,VI,n保證所有資料在int類型範圍內。

Output

如果加特林能幹掉殭屍,請輸出"YES",否則輸出"NO"。
題解:只需要在殭屍走到加特林之前射出相應子彈即可,但因為加特林還有兩秒的壽命,我們可以把這兩秒殭屍走的距離加到L上(L1),這樣只需要判斷子彈數乘以殭屍速度與L1的大小即可。
程式碼如下:

#include <stdio.h>
int main()
{
    int l,v0,v1,n;
    int a,b;
    while(scanf("%d %d %d %d",&l,&v0,&v1,&n)!=EOF){
        a=l+2*v1;
        b=n*v1;
        if(a>b){
            printf("YES\n");
        }
        else{
            printf("NO\n");
        }
        a=0;
        b=0;
    }
    return 0;
}