ブルーブリッジカッププログラミングの練習(はじめに)

ブルーブリッジカップ入門(Python言語)

NO.1 Fibonacci数列

問題の説明

フィボナッチ数列の再帰式は次のとおりです。Fn= Fn-1 + Fn-2、ここでF1 = F2 = 1。

nが比較的大きい場合、Fnも非常に大きくなります。ここで、Fnの余りを10007で割ったものを知りたいと思います。

入力フォーマット

入力に整数nが含まれています。

出力フォーマット

Fnの余りを10007で割った値を表す整数を含む行を出力します。

递归:
def fib(n):
    if (n==1 or n==2):
        return 1
    else:
        return fib(n-1)+fib(n-2)
print(fib(int(input()))%10007)
动态规划:
def fib(n):
    # 由前往后推
    a = 1
    b = 1
    if n <= 2:
        return 1
    for i in range(n - 2):
        a, b = b, a + b
    return b
print(fib(int(input()))%10007)

NO.2円の面積

問題の説明

円の半径rを指定して、円の面積を見つけます。

入力フォーマット

入力には、円の半径を表す整数rが含まれています。

出力フォーマット

実数を含む、小数点以下7桁に丸められた、円の面積を示す線を出力します。

サンプル入力

4

サンプル出力

50.2654825

データの規模と慣習

1 <= r <= 10000。

import math

radius = float(input())
area = math.pi * radius * radius

print('%.7f' % area)

NO.3シーケンスの合計

問題の説明

1 + 2 + 3 +…+ nの値を見つけます。

入力フォーマット

入力には整数nが含まれます。

出力フォーマット

1 + 2 + 3 +…+ nの値を表す整数を含む行を出力します。

サンプル入力

4

サンプル出力

10

サンプル入力

100

サンプル出力

5050

データの規模と慣習

1 <= n <= 1,000,000,000。

def f(n):
    m=(1+n)*n/2
    return int(m)
print(f(int(input())))

NO.4 A+B问题

問題の説明

入力A、B、出力A + B。

入力フォーマット

入力の最初の行には、スペースで区切られた2つの整数が含まれ、それぞれAとBを表します。

出力フォーマット

A + Bの値を表す整数を含む行を出力します。

サンプル入力

12 45

サンプル出力

57

データの規模と慣習

-10000 <= A、B <= 10000。

a=input().split()
print(int(a[0])+int(a[1]))

上記の最初の質問では90ポイント、その他の質問では100ポイントしか獲得できません。実践の過程で、アルゴリズムの優位性を考えることが非常に重要であり、蓄積と改善を続ける必要があることに気づきました。

おすすめ

転載: blog.csdn.net/qq_43254543/article/details/104239823