#8567: 測資有誤


firzendragon (冰火龍)

學校 : 國立交通大學
編號 : 19731
來源 : [36.228.225.46]
最後登入時間 :
2018-05-02 22:36:30
d213. 长寿的兔子 -- 著名题目 | From: [220.228.150.131] | 發表日期 : 2014-01-23 09:34

第 10 筆資料有減去第 0 年的 2 隻兔子

第 11 筆資料卻沒有減去第 1 年的 6 隻兔子,往後資料也都沒有減

照題意應該是這樣:

a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - a(n-10)

但事實上這題測資卻是這樣: 

a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - 2, if n>10 

a(n) = 2[a(n-1) - a(n-2)] + a(n-1), else

 
#8570: Re:測資有誤


silithus (希利蘇斯)

學校 : 澳門培道中學
編號 : 33314
來源 : [60.246.116.246]
最後登入時間 :
2023-09-19 17:00:10
d213. 长寿的兔子 -- 著名题目 | From: [60.246.194.12] | 發表日期 : 2014-01-24 10:35

第 10 筆資料有減去第 0 年的 2 隻兔子

第 11 筆資料卻沒有減去第 1 年的 6 隻兔子,往後資料也都沒有減照題意應該是這樣:

a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - a(n-10)

但事實上這題測資卻是這樣: 

a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - 2, if n>10 

a(n) = 2[a(n-1) - a(n-2)] + a(n-1), else

測資沒錯吧,到第10年減去第0年的2隻兔子,第11年減去第1年出生的4隻兔子(不是減6),這道題其實可以用二進制來做:

#include <stdio.h>

int main(void)

{

int i;

unsigned long long r[63];

for(i=1,r[0]=0x2; i<63; i++)

r[i] = (r[i-1]<<1) | (i<=9?0x2:0);

while(scanf("%d", &i) != EOF)

printf("%llu\n", r[i]);

return 0;

}

 
ZeroJudge Forum