第74回【Python】けた数の測定、足したり引いたり
現在取り組んでいるのは、paiza ラーニング問題集「条件分岐メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 74 回目です。
座り仕事で足のむくみがひどくなってきたので、試しに、足を少しだけ高くして寝てみました。翌朝、足が軽くて軽くて驚きです。とりあえずは家にあるものでやっていますが、足用の枕を買う日も近い気がしています。
それでは、今日も頑張ってみようと思います。
けた数の測定
整数Nが与えられます。Nのけた数を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・ N は 0 以上 1,000 未満の整数
100
最初に思いついたのは、文字列型でとって len 関数を使う方法。しかし「条件分岐メニュー」なので、if 文を利用して書く必要があるかも、が別解。
Python
N = input()
print(len(N))
Python(別解)
N = int(input())
if N < 10:
print(1)
elif N < 100:
print(2)
else:
print(3)
VBA
N = Cells(1, 1)
Debug.Print Len(N)
VBA(別解)
N = Cells(1, 1)
If N < 10 Then
Debug.Print 1
ElseIf N < 100 Then
Debug.Print 2
Else
Debug.Print 3
End If
足したり引いたり
整数N, A, B ( – 99 ≦ N, A, B ≦ 100 ) があります。以下の 2 つの操作をそれぞれ 1 回ずつおこなったとき、Nを 0 にできる場合はYES
を、できない場合はNO
を出力してください。
1. NにAを足す、またはNからAを引く
2. NにBを足す、またはNからBを引く
N A B
すべてのテストケースにおいて、以下の条件をみたします。
・ N, A, B は – 99 以上 100 以下の整数
-10 8 2
これは、単純に、起こり得る全パターンで検査してみれば良いだけ?
Python
N,A,B = map(int,input().split())
if N + A + B == 0:
print("YES")
elif N + A - B == 0:
print("YES")
elif N - A + B == 0:
print("YES")
elif N - A - B == 0:
print("YES")
else:
print("NO")
VBA
NAB = Split(Cells(1, 1), " ")
N = Val(NAB(0))
A = Val(NAB(1))
B = Val(NAB(2))
If N + A + B = 0 Then
Debug.Print "YES"
ElseIf N + A - B = 0 Then
Debug.Print "YES"
ElseIf N - A + B = 0 Then
Debug.Print "YES"
ElseIf N - A - B = 0 Then
Debug.Print "YES"
Else
Debug.Print "NO"
End If
最後に
もっとスマートな方法があるかもしれないけれど、模範解答もこれだったし、これで良いのだろうか。
if 文を並べたときの最後、else で終わらせてしまうか、きちんと条件付けしておくべきか。else で終わらせてしまうと、条件が増えたときに書き直す範囲が増える可能性がある。条件付けしておくと、条件に当てはまらないデータがきたときにエラーが発生する可能性がある。拡張性を考えて、どちらが良いのか。・・・ちゃんと条件付けしたうえで、else で締めるのがいいんだろうけれど。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません