Luogu 試験ノート B2001-B2020 (Python)

ここに記録されているのは Python ソリューションであり、より難しいものをいくつか選択して記録しています。

B2001 入学試験の問題

スペースで区切られた 2 つの整数の合計を求めます。ここに画像の説明を挿入します

Python を使用する習慣は、输入Enter を使用してから Enter を押すことです输入。ここでの要件は次のとおりです一行,使用空格隔开
input()入力は文字列であり、.split()メソッドを使用して文字列を分割してリストに変換し、map()関数を使用して型変換と結合を実行できます依次赋值

a,b = map(int,input().split())
print(a+b)

KR:python 空格间隔的输入。

B2004 整列出力

右揃えの出力。ここに画像の説明を挿入します

Python を使用して格式化输出、一般的な言語で一般的に使用される 8 つの幅(左揃えとダッシュ:)占位符を設定する考えに従って、コードは次のようになります。默认右对齐-%d

'''方案一:'''
a,b,c = map(int,input().split())
print("%8d %8d %8d"%(a,b,c))
'''方案二:'''
a,b,c = map(int,input().split())
print("{:8d} {:8d} {:8d}".format(a,b,c))

Python では、バージョン 2.6 以降、文字列をフォーマットする関数 str.format() が追加されました。

KR:python 的格式化输出。

B2005 キャラクタートライアングル

文字三角形を印刷します。ここに画像の説明を挿入します

結果を 1 つずつ印刷すれば、当然メモをとる必要はありません。私たちがよく使うのは です循环结构
各行の出力結果を分析して計算する、つまり計算が必要です等差数列print()最後にPython のデフォルトの改行を使用するため、end=""それを変更するにはパラメータを渡す必要があります。
さらに、Python は文字列の乗算によってより多くの文字を出力することもできます。
コードは以下のように表示されます。

'''方案一:'''
base,height= 5,3 #可根据情况灵活更改
a = input()
for i in range(height):    
    for m in range(height-1-i):    # 每行空格数 == 循环次数
        print(" ",end = "")
    for n in range(2*i+1):    # 每行字符数 == 循环次数
        print(a,end = "")
    print()    #一层(行)结束,换行

'''方案二'''
base,height= 5,3 #可根据情况灵活更改
a = input()
for i in range(height):    
    print(" "*(height-i-1),end="")  # 每行空格数
    print(a*(2*i+1),end="")    # 每行字符数
    print()

「コンピュータ」の習慣に注意してください。
1. 範囲は​​ 0 から始まります
。 2. 間隔は左側で閉じられ、右側で開きます。

B2012 H1N1 流行による死亡率

ここに画像の説明を挿入します

Python は%%プレースホルダーを使用してパーセント記号を出力します。また、パーセント部分は小数の 100 倍です。

num_cfm = int(input())
deaths = int(input())
print("%.3f%%"%(deaths/num_cfm*100))

ASCIIコード変換について

Pythonは変換に関数を使用します。

print("%d"%ord(input().strip())) #字符转数字 
print(chr(int(input())).strip()) #数字转字符

strip()前後に存在するスペースを削除するために使用します(Pythonの変数格納方法が特殊であるため、コンパイル結果が不一致になる可能性があります)

B2020ポイントキャンディー

ここに画像の説明を挿入します

質問内の割り当て方法は繰り返しになりますので、その使用を検討してください循环结构
大量のデータの操作を容易にするために、序列结构(ここではリストを使用します) の使用を検討してください。配列またはリストを使用する場合は、範囲外の状況を考慮する必要があります。
変数を更新して使用するときは赋值运算符、コードの順序を調整するために変数の変更に常に注意してください。

# 以列表的的形式存储输入值
info = list(map(int,input().split()))
sum = 0
#分配过程
for i in range(len(info)):
    sum += info[i] % 3
    info[i] = info[i]//3
    info[i-len(info)+1] += info[i]
    info[i-1] += info[i]
for i in info:
    print(i,end=" ")
print()
print(sum)

KR:列表(数组)越界问题


以下に続きます。

おすすめ

転載: blog.csdn.net/m0_67313306/article/details/124889074