此題只要算它前幾個結果,並找出其中的關係,其實不難。公蜂的數量從 0 年算起數量的變化為:0 -> 1 -> 2 -> 4 -> 7 -> ...;而母蜂的數量從 0 年算起數量的變化為:1 -> 1 -> 2 -> 3 -> 5 -> ...。可以發現,當年的公蜂數量是去年公蜂和母蜂加總,而母蜂的數量是去年和前年的母蜂加總,有了這個關係,就很好寫了。
以下是主程式區塊程式碼:
long n, i;
scanf("%ld", &n);
if (n < 0) break;
long female[2], recode, male = 0,total = 0;
female[0] = 0, female[1] = 1;
if(n == 0)
{
printf("0 1\n");
continue;
}
else
for(i=1 ; i<=n ; i++)
{
male = female[1] + male;
recode = female[1] ,female[1] += female[0], female[0] = recode;
total = male + female[1];
}
printf("%ld %ld\n", male, total);
By David.K
p11000題目連結
回ACM題庫目錄
回首頁
沒有留言:
張貼留言