大一新生,哈哈,希望明年的蓝桥杯省赛能混个奖,目前在努力刷题,把写的代码记录下来,方便大伙学习,也方便我复习
题目描述
给定数列1,1,1,3,5,9,17,…,从第4项开始,每项都是前3项的和。求
第20190324项的最后4位数字。
题目分析
用数组保存三项值,通过对3取余依次将数字加上去。应为保留最后四位数字,所以每次计算过后需要用10000取余,不然会溢出
题目代码
#include<stdio.h>
int main()
{
int num[3]={1,1,1};//先将前面三个数给定义初始值
int d;
int set=4;
while (set<=20190324){
num[set%3]=num[0]+num[1]+num[2];//当set为4时,num[1]=3
num[set%3]%=10000; //当set为5时,num[2]=5
set++; //当set为6时,num[0]=9
} //以此类推,最终当set为20190321时
printf("%d",num[0]); //因为其恰好能被3整除,输出num[0]
return 0;
}
题目答案
4659