我讀書少,你們得幫幫我(2018.11.27)
阿新 • • 發佈:2018-11-27
首先我覺得出題的人一定是有毒T^T,這種神奇的家族他都搞得出來,也布吉島是不是單身太久了,他大概需要一個小姐姐來糾正他的三觀。所以如果看到這篇文章的你是一個有這個意向的小姐姐的話,請記得聯絡我,謝謝喵(手動筆芯)
好吧其實是我想吃糖了TvT,下面是正題不要打我。
描述:
這是一題簡單的題目,考的只是你的數學而已。我一直都很好奇愚公一家到底有多少人。好吧,毛學姐說你們會幫我的。假設愚公家族 每個人的一生是這樣度過的:(當他回首往事的時候。。。開個玩笑,請無視) 頭20年用來生長髮育以及挖山,第21年(可以理解為21歲的時候)開始 每年生下一個孩子( 自交,任性, 沒妻子,全生男,且不考慮死亡),當然還要去挖山。我們預設愚公11歲的時候為第一年(第21年愚公生下第一胎),求第N年愚公家族(愚公家族不需要妻子,別考慮太多)有多少人。
輸入:
有多組測試資料,每組佔一行,包括一個數N(0<N<=60),N為第N年。
輸出:
對於每組測試,輸出整數M,M為愚公家族的人。
樣例輸入 :
1
21
41
樣例輸出:
1
2
23
分析:
這道題第一眼看上去特別有斐波那契數列的錯覺。。。然後一個興奮就容易WA了
所以要冷靜分析,嗯就是這樣。
分析之後我們會發現,在第一年到第二十年之間都只有一個人(還未成年)
第二十一年到第四十年每年都比上一年多增加一個人,所以是:f(n-1)+1
第四十一年到第六十年是每一年都比上一年都增加二十年前的人數,所以是:f(n-1)+f(n-20),即為f(n-1)+n-39
由於題目中給了N<=60,所以之後的情況就不用分析了。
這道題分情況遞迴就可以了,並不難。
程式碼如下:
#include<stdio.h> int yugong(int n) { int a; if(n>=1 && n<=20) return 1; else if (n>20 && n<=40) a=yugong(n-1)+1; else if (n>40 && n<=60) a=yugong(n-1)+n-39; return a; } int main() { int n; while(scanf("%d",&n)!=EOF) { printf("%d\n",yugong(n)); } return 0; }