第十屆——03數列求值

Fiona Tracy發表於2020-10-16

題目

給定數列1,1,1,3,5,9,17,…,從第4項開始,每項都是前3項的和。求 20190324項的最後4位數字。

解析

**這道題的突破口是:**如何找一個數的後面多少位?
如果是一位,那麼我們:x%10即可得到
如果是兩位呢?x%100???——是的x%100
依次類推——如果我們求一個數的後4位——x%10000在這裡插入圖片描述
然後根據題目,我們可以得出這種類似斐波那契數列,所以根據類似的方法,我們可以求出來。
程式碼:

public static void main(String[] args) {
		int n = 20190324;
		Long resFib = fib(n);
		System.out.println(resFib);

	}

	static public long fib(int n) {
		if (n <= 3) {
			return 1;
		}
		int a = 1, b = 1, c = 1, r = 4;
		while (r <= n) {
			int sum = a + b + c;
			a = b % 10000;
			b = c % 10000;
			c = sum % 10000;
			r++;
		}
		return c;
	}

答案:4659

做題反思

沒有理解求後四位是什麼,之前只學過求最後一位(將一個整數反轉)
現在學到了!!!
end。

相關文章