大一新生,哈哈,希望明年的蓝桥杯省赛能混个奖,目前在努力刷题,把写的代码记录下来,方便大伙学习,也方便我复习
题目描述
给定数列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