問題: スーパーマーケットの生鮮食品の売れ残り計算
入力:
- 生鮮食品の初期重量
m
(kg) - 生のまま販売した時の売上割合
p
(%) - 売れ残りをお惣菜にした時の売上割合
q
(%)
出力:
- 最終的な売れ残りの重量 (kg)
アプローチ:
- 初期重量
m
からp%
を売り上げる - 残りの
m
からq%
をお惣菜として売り上げる - 最終的な売れ残りを計算して出力
コード:
def solve(m, p, q):
# 最初に売れた量を計算 (生のまま)
sold_initially = m * p / 100.0
# 最初に売れた後の残りの量
remaining_after_first_sale = m - sold_initially
# 残りをお惣菜にして売れた量を計算
sold_as_osozai = remaining_after_first_sale * q / 100.0
# 最終的な残りの量を計算
leftover_stock = remaining_after_first_sale - sold_as_osozai
return leftover_stock
# 入力の受け取り
import sys
input = sys.stdin.read().strip().split()
m, p, q = map(int, input)
# 売れ残り量の計算
leftover = solve(m, p, q)
# 結果の出力(小数点以下6桁まで表示)
print(f"{leftover:.6f}")
コードの説明:
-
関数
solve
の定義:-
m
: 生鮮食品の初期重量 -
p
: 生のまま販売した時の売上割合 -
q
: 売れ残りをお惣菜にした時の売上割合
def solve(m, p, q): # 最初に売れた量を計算 (生のまま) sold_initially = m * p / 100.0 # 最初に売れた後の残りの量 remaining_after_first_sale = m - sold_initially # 残りをお惣菜にして売れた量を計算 sold_as_osozai = remaining_after_first_sale * q / 100.0 # 最終的な残りの量を計算 leftover_stock = remaining_after_first_sale - sold_as_osozai return leftover_stock
-
-
入力の受け取り:
- 標準入力から値を読み込み、
m
,p
,q
に分割して整数に変換。 -
input
を使ってデータを読み込みます。
import sys input = sys.stdin.read().strip().split() m, p, q = map(int, input)
- 標準入力から値を読み込み、
-
売れ残り量の計算:
-
solve
関数を呼び出して売れ残りの量を計算。 - 最終結果を小数点以下6桁まで表示して出力。
leftover = solve(m, p, q) print(f"{leftover:.6f}")
-
このプログラムは、与えられた生鮮食品の初期重量と売上割合に基づいて、最終的な売れ残りの重量を正確に計算し、指定された形式で出力します。