蓝桥杯–入门训练
1.Fibonacci数列取余
Fibonacci数列当n比较大时,Fn也非常大,求Fn除以10007的余数是多少。
这是蓝桥杯入门训练里的一道题,我首先用的函数递归,这是我大一学的内容,最后超时了。我是先求出数列答案,再取余。下边是函数内容:
long long int f(int n){
if( n==1 || n==2 ){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
然后根据提示我用了 a[i]=(a[i-1]+a[i-2])%10007;(没超时,满分吖~)代码完整如下:
#include<iostream>
using namespace std;
#define Max 1000000
long long int a[Max]={0};
int main(){
int n;
cin>>n;
if( n==1 || n==2 ){
a[1]=a[2]=1;
}else{
a[1]=a[2]=1;
for(int i=3;i<=n;i++){
a[i]=(a[i-1]+a[i-2])%10007;
}
}
cout<<a[n]<<endl;
}
2.求和
求1+2+3+…+n的值。
暴力做法从1+···+100当然是不可取哒~7岁高斯上线!l利用 sum=(1+n)*n/2;即可。记得给sum值加上long long int 哦!
3.圆的面积
这是我完全一次性over的题目(也不知道小学生水平在高兴什么??)。
printf("%.7lf",PI*r*r); //这是在输出拥有7位小数的实数
4.总结
虽然练习才刚刚开始,连博客也是刚刚接触,磕磕绊绊,希望还来得及~一起加油~