蓝桥杯 入门训练四道题

第一题: 入门训练 Fibonacci数列

重点: 在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值, 再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
这句话已经告诉你怎么写程序了!

#include <iostream>
using namespace std;
int main() {
    unsigned long s=0,f1=1,f2=1,f3=1,n=0;
    cin >> n;
    if(n>2){
        for(s=3;s<=n;s++)
        {
            //每次计算出f3都是基于(f2+f1)%10007
            f3=(f2+f1)%10007;
            f1=f2;
            f2=f3;
        }
    }
    cout<< f3 <<endl;
    return 0;
}

第二题:入门训练 圆的面积

这道题关键在与小数点的精确度,我用的是C++写的,所有需要知道C++double精度如何控制:
第一种方法:

cout<<fixed<<setprecision(20)<<mydouble<<endl;

第二种方法:

cout.precision(dbl::digits);

接下来就简单了,解题代码:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    int r = 0;
    double p1 = 3.14159265358979323;
    cin >> r;
    cout<<fixed<<setprecision(7)<< (r*r*p1) <<endl;
    return 0;
}

第三题:入门训练 序列求和

这道题没啥说的,主要是用暴力的求解方式肯定会出现超时,或者内存占用过大的问题。

#include<iostream>  
#include<cmath>
using namespace std;

int main()  
{  

    long long  data,n;  
    long long sum=0;  

    cin >> n;  
    sum=n*(n+1)/2;  
    cout << sum <<endl; 
    return 0;  
}

第四题:入门训练 A B问题

看过其中的内容了解知道后,直接粘贴复制喽!

#include <iostream>

using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;
    cout << a + b;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/yhflyl/article/details/79315914