第149回【Python】整数の足し算、足すか掛けるか
現在取り組んでいるのは、paiza ラーニング問題集「B ランクレベルアップメニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 149 回目です。
チャットツールの利用が増えたからといっても、メールはどうしてもなくならないものです。メールを使ったことがない最近の子たちにメールの作法を教えるのは骨が折れます。知らない人に「いつもお世話になっております。」を書く理由を聞かれるのも、デフォルトです。それくらい知っておいて欲しいと思うのは、LeoSaki(旦那)がもう若くないということなのですかねぇ。
それでは、今日も頑張ってみようと思います。
整数の足し算 (paizaランク D 相当)
スペース区切りの2つの整数が入力されるので、それらを足して出力してください。
a b
期待する出力
a と b を足した値を出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
-100,000 ≦ a ≦ 100,000
-100,000 ≦ b ≦ 100,000
入力例
1 2
出力例
3
型を意識する癖をつけるには、VBA で「Option Explicit」をつけてやればいいと思うの。
Python
ab = input().split()
ans = 0
for v in ab:
ans += int(v)
print(ans)
Python(別解)
a,b = map(int,input().split())
print(a + b)
VBA
Sub total_value_3()
AB = Split(Cells(1, 1), " ")
ans = 0
For Each v In AB
ans = ans + Int(v)
Next
Debug.Print ans
End Sub
足すか掛けるか (paizaランク C 相当)
2つの整数の組がn個与えられるので、各組の計算結果を足し合わせたものを出力してください。
各組の計算結果は次の値です。
・2つの整数の組を足し合わせたもの
・ただし、2つの整数が同じ値だった場合は、掛け合わせたもの
n
a_1 b_1
...
a_n b_n
nは与えられる整数の組の行数です。
a_iとb_iはそれぞれが整数です。
期待する出力
各行の計算結果を足し合わせた値を出力してください。
最後は改行し、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
1 ≦ n ≦ 50
-100,000 ≦ a_n ≦ 100,000
-100,000 ≦ b_n ≦ 100,000
入力例
5
2 1
3 6
4 2
4 4
4 70
出力例
108
最大で 100 億の桁まで(全部が最大の組み合わせだと、1000 億の桁まで)あり得る。Python は平気だけれど、VBA は LongLong 型でしか扱えず、64 bit 版の Office でしか取り扱いができない。
Python
n = int(input())
ans = 0
for _ in range(n):
a,b = map(int,input().split())
if a == b:
ans += a * b
else:
ans += a + b
print(ans)
VBA
Sub total_value_9()
N = Cells(1, 1)
ans = 0
For i = 1 To N
AB = Split(Cells(i + 1, 1), " ")
a = Val(AB(0))
b = Val(AB(1))
If a = b Then
ans = ans + a * b
Else
ans = ans + a + b
End If
Next
Debug.Print ans
End Sub
最後に
1000 億の桁の計算が物理的に難しいのはしょうがないとして、LongLong 型は知りませんでした。勉強不足。
ちなみに、エクセルの「ファイル→アカウント→ Excel のバージョン情報」で、何 bit か確認することができます。ご利用のエクセルが 64 bit であれば、LongLong 型を試してみてください。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません