蓝桥杯–入门训练
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.总结
虽然练习才刚刚开始,连博客也是刚刚接触,磕磕绊绊,希望还来得及~一起加油~