問題)
服屋のポイント総額を計算したい。
ポイント付加のルールは以下の3つのルールに従う。
- 通常は購入金額の 1 %(小数点以下切り捨て)とする
- ただし、5 のつく日は購入金額の 5 %(小数点以下切り捨て)とする
- ただし、7 のつく日は購入金額の 7 %(小数点以下切り捨て)とする
N #各レシートの数
d_1 p_1 #1枚目のレシートの日付 d_1 日, 購入金額 p_1 円
d_2 p_2 #2枚目のレシートの日付 d_2 日, 購入金額 p_2 円
...
d_N p_N #N枚目のレシートの日付 d_N 日, 購入金額 p_N 円
じょうk
・ 1 ≦ N ≦ 1000 (レシートの数)
・ 1 ≦ d_i ≦ 31 (i番目のレシートが発行された日付)
・ 1 ≦ p_i ≦ 10000 (i番目のレシートの購入金額)
入力例1
3
1 1024
11 2048
21 4196
出力例1
71
#正常なコード
コード N = int(input()) data = [ list(map(str,input().split())) for _ in range(N) ] days, price = zip(*data) price = list(map(int,price)) total_point = 0 #特定の数字を含む、文字型の数字を抽出 for k,v in zip(days, price): if '5' in k: point = v * 5//100 elif '7' in k: point = v * 7//100 else: point = v * 1//100 total_point += point print(total_point)
#不備のあるコード
特定の数字を含む、文字型の数字を抽出する際に、find()を利用したが、うまく機能しない。
ただし、エラーなどの表示はない
原因がお分かりの方がいらっしゃたら教えて頂きたいです。
コード N = int(input()) data = [ list(map(str,input().split())) for _ in range(N) ] days, price = zip(*data) price = list(map(int,price)) total_point = 0 #特定の数字を含む、文字型の数字を抽出 for k,v in zip(days, price): if k.find('5'): point = v * 5//100 elif k.find('7'): point = v * 7//100 else: point = v * 1//100 total_point += point print(total_point)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。