「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战」
💛作者主页:静Yu
🧡简介:CSDN全栈优质创作者、华为云享专家、前端知识交流社区创建者
💛社区地址:bbs.csdn.net/forums/Jing…
第十三届蓝桥杯大赛个人赛省赛比赛将于2022年4月9日(星期六)举办,趁现在寒假的时间抓紧时间备战一下。因为博主本人报名是C/C++组,所以更新所有内容都是C/C++相关知识。题目全部都是蓝桥杯官网题库真题。今天是备战刷题的第十一天。
问题:
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
1. 年份是4的倍数而不是100的倍数;
2. 年份是400的倍数。
其他的年份都不是闰年。
输入格式:
输入包含一个整数y,表示当前的年份。
输出格式:
输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
样例输入:
2013
样例输出:
no
样例输入:
2016
样例输出:
yes
解题思路:
非常简单的一道题目,题目已经给出了闰年的判断方式,只需要通过简单的if语句判断一下就可以。
完整代码:
#include <iostream>
using namespace std;
int main()
{
int y;
cin>>y;
if(y%4==0&&y%100!=0 ||y%400==0)
cout<<"yes";
else
cout<<"no";
return 0;
}
问题:
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式:
输入包含一个整数n.
输出格式:
输出一行,包含一个整数,表示Fn除以10007的余数
样例输入:
10 样例输出: 55
样例输入:
22 样例输出: 7704
解题思路:
其实这道题目就是经典的递归例题斐波那切数列,我们用递归思想可以解题,但是运行超时只得了30分。另外一种方法就是迭代的思想,成功拿到满分。
完整代码:
//递归解法
#include<iostream>
using namespace std;
int fib(int n){
if(n==1) return 1;
if(n==2) return 1;
return (fib(n-1)+fib(n-2))%10007;
}
int main(){
int n;
cin>>n;
cout<<fib(n);
return 0;
}
//迭代
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
long long a[n];
a[0] = 1,a[1] = 1;
for(int i=2;i<n;i++){
a[i] = (a[i-2]+a[i-1])%10007;
}
cout<<a[n-1]<<endl;
return 0;
}