C/C++教程

2019年第十届C/C++ B组蓝桥杯省赛第3题

本文主要是介绍2019年第十届C/C++ B组蓝桥杯省赛第3题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

大一新生,哈哈,希望明年的蓝桥杯省赛能混个奖,目前在努力刷题,把写的代码记录下来,方便大伙学习,也方便我复习

题目描述
给定数列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

这篇关于2019年第十届C/C++ B组蓝桥杯省赛第3题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!