第146回【Python】インクリメント、複数行の入力と出力、配列(リスト)要素の合計
現在取り組んでいるのは、paiza ラーニング問題集「B ランクレベルアップメニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 146 回目です。
今回から「B ランクレベルアップメニュー」に挑戦します。序盤の D ランク相当レベルの問題は出来るだけサクサクと進めていけたらいいなぁ。進めていけるくらいの力はついたかなぁ。自身の腕試し、くらいの気持ちで気軽に挑戦してみます。
それでは、今日も頑張ってみようと思います。
インクリメント (paizaランク D 相当)
1つの整数nが入力されるので、その値に1を足した値を出力してください。
n
期待する出力
nに1を足した数値を出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
-3,000,000 ≦ n ≦ 3,000,000
入力例
-10
出力例
-9
インクリメントの書き方の復習。
Python
n = int(input())
n += 1
print(n)
模範解答は、print(n + 1) ってなっていて、インクリメントの書き方の復習じゃないのかーって心の中で叫んでしまった。
VBA
Sub prob60_5_or_more_0()
N = Cells(1, 1)
N = N + 1
Debug.Print N
End Sub
複数行の入力と出力 (paizaランク D 相当)
改行区切りで自然数が n 個入力されるので、n 個の自然数をそのまま出力してください。
n
a_1
a_2
a_3
...
a_n
期待する出力
入力されたそれぞれの自然数 a_i を、そのまま出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
1 ≦ n ≦ 3,000
1 ≦ a_i ≦ 100,000
入力例
4
382
695
928
577
出力例
382
695
928
577
配列に収めるか、そのまま出力するだけにするべきか。問題の意図が読み切れない。
Python
n = int(input())
for _ in range(n):
print(input())
VBA
Sub prob60_5_or_more_1()
N = Cells(1, 1)
For i = 1 To N
Debug.Print Cells(i + 1, 1)
Next
End Sub
配列(リスト)要素の合計 (paizaランク D 相当)
指定した配列(リスト)を定義し、配列(リスト)の要素すべてを加算して出力してください。
なし
1, 3, 5, 6, 3, 2, 5, 23, 2
を要素に持つ配列(リスト)をプログラムで定義し、使用すること。
期待する出力
配列(リスト)の要素すべてを足した値。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
なし
入力例
なし
出力例
なし
指定した配列がどこに記述されているのかがわかりにくかった。
Python
li = [1, 3, 5, 6, 3, 2, 5, 23, 2]
print(sum(li))
VBA
Sub prob60_5_or_more_2()
li = Array(1, 3, 5, 6, 3, 2, 5, 23, 2)
ans = 0
For Each v In li
ans = ans + v
Next
Debug.Print ans
End Sub
最後に
うん、さすがにこれくらいなら余裕です。ということで、こぼれ話。
最近は、VBA のプロシージャー名に、paiza の問題の URL をつけているのだけれど、今回の問題の URL は「5_or_more_2」なので、プロシージャ名に利用することができません。「先頭には、数字やアンダーバー(_)は使えない」というルールがあるので。
脱線になっちゃいますが、プロシージャー名に日本語を利用するのは個人的には嫌いです(変数名にも)。昔々は、日本語は使っちゃいけない、と言われていた時代もありましたが、今はそんなこと聞かないので、日本語を利用した方がわかりやすくていいのかもしれないですが。単純に、ひらがなにしたり半角英数にしたりというキーボードの切り替えが煩わしいというのも個人的に嫌いな理由の一つです。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません