1. 程式人生 > >【藍橋杯練習題】入門訓練

【藍橋杯練習題】入門訓練

序列求和

問題描述
求1+2+3+…+n的值。
輸入格式
輸入包括一個整數n。
輸出格式
輸出一行,包括一個整數,表示1+2+3+…+n的值。
樣例輸入
4
樣例輸出
10
樣例輸入
100
樣例輸出
5050
資料規模與約定
1 <= n <= 1,000,000,000

這個題如果是累加計算提交會顯示超時,所以最好的方法是用數學公式計算。。。。。還要注意的就是資料的規模,已經超過了int範圍

#include<stdio.h>
int main()
{
    int i;
    long long int n,s=0;
    scanf("%lld",&n);
    if
(n>=2) { s=(1+n)*n/2; } else s=1; printf("%lld",s); return 0; }

圓的面積

問題描述
給定圓的半徑r,求圓的面積。
輸入格式
輸入包含一個整數r,表示圓的半徑。
輸出格式
輸出一行,包含一個實數,四捨五入保留小數點後7位,表示圓的面積。

樣例輸入
4
樣例輸出
50.2654825
資料規模與約定
1 <= r <= 10000。
提示
本題對精度要求較高,請注意π的值應該取較精確的值。你可以使用常量來表示π,比如PI=3.14159265358979323,也可以使用數學公式來求π,比如PI=atan(1.0)*4。

#include<stdio.h>
#define PI  3.14159265358979323
int main()
{
    int r;
    double s;
    scanf("%d",&r);
    s=r*r*PI;
    printf("%.7lf",s);
    return 0;
}

注意保留小數點的位數。

Fibonacci數列

問題描述
Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。

當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的餘數是多少。

輸入格式
輸入包含一個整數n。
輸出格式
輸出一行,包含一個整數,表示Fn除以10007的餘數。

樣例輸入
10
樣例輸出
55
樣例輸入
22
樣例輸出
7704
資料規模與約定
1 <= n <= 1,000,000

這個題要用非遞迴法,如果用遞迴會顯示超時

#include <stdio.h>
long long int  f[1000001];
int main()
{
    int n,i;
    while(scanf("%d",&n)!=EOF)
    {
        f[0]=0;f[1]=1;
        for(i=2;i<=n;i++)
        {
            f[i]=(f[i-1]+f[i-2])%10007;
        }
        printf("%lld", f[n] );
    }
    return 0;
}