数列求值

206 阅读1分钟

给定数列1,1,1,3,5,9,17,…,从第4项开始,每项都是前3项的和。求
第20190324项的最后4位数字。

#include<stdio.h>
int main()
{
	int a, b, c,d;
	a = b = c = 1;
		int i = 1;
		for (i = 4; i <= 20190324; i++)
		{
			d = (a + b + c)%10000;//a+b+c=d
			a = b;
			b = c;
			c = d;
		}
		printf("%d", d);
	return 0;
}

此问题难点在于若不在计算过程中加入%10000会溢出,且一开始将问题复杂化,应简易变量。