營銷型網(wǎng)站建設(shè)多少錢中國十大網(wǎng)站排名
題目描述
本題為填空題,只需要算出結(jié)果后,在代碼中使用輸出語句將所填結(jié)果輸出即可。
給定數(shù)列 1,1,1,3,5,9,17,?,從第 4 項(xiàng)開始,每項(xiàng)都是前 3 項(xiàng)的和。
求第 20190324 項(xiàng)的最后 4 位數(shù)字。
運(yùn)行限制
最大運(yùn)行時間:1s
最大運(yùn)行內(nèi)存: 128M
最終的答案是4659;
所需變量
int a[4];//為了節(jié)省空間,我們可以用四個空間大小的數(shù)組來代替不斷循環(huán)
int n;//代表要求的是第多少項(xiàng)
int temp;//用來確定到底是數(shù)組中的哪一項(xiàng)
int i;//循環(huán)變量
首先我們可以設(shè)計(jì)一個循環(huán)的數(shù)組,這樣節(jié)省空間,比如對于第四項(xiàng)是由前三項(xiàng)加起來,那么我們就可以把a(bǔ)[0] + a[1] + a[2]加起來賦值給a[3],對于第五項(xiàng)由于只需要前三項(xiàng),那么我們可不可以將第五項(xiàng)賦值給a[0],因?yàn)槲覀冎恍枰扒叭?xiàng)”,a[1] + a[2] + a[3],,對于第六項(xiàng)那么我們就可以將 a[2] + a[3]+a[0]然后賦值給a[1],這樣我們就做到節(jié)省空間的做法了!(該方法本人新思路,大家可以看看)
for(i = 3;i<n;i++){temp = i%4;a[temp] = (a[0] + a[1] + a[2] + a[3] - a[temp])%10000;}
思路:因?yàn)檫@個題目是只需要最后的四位數(shù),然后我們每次發(fā)現(xiàn)從第五位開始,上面位的我們都不需要,所以看在字符會越界的情況下,我們可以每次加起來就求余一次,把從第五位開始,上面的位數(shù)都去掉!
該方法本人認(rèn)為比較優(yōu),如果有更好的想法,歡迎q我!
#include<stdio.h>
int a[4] = {1,1,1,0};
int n,temp,i;
int main(){scanf("%d",&n);for(i = 3;i<n;i++){temp = i%4;a[temp] = (a[0] + a[1] + a[2] + a[3] - a[temp])%10000;}printf("%d",a[temp]);return 0;
}