[2670]連続部分最大乗算
質問する
よく知られている部分の最大と問題の変形は、今回は最大乗を求める問題です.解の方式は基本的に同じであるが,連続部分の遮断起点が最大部分と0未満の場合,最大積では累積積が1未満の場合,連続部分を遮断する点が異なる.
コード#コード#
tc = int(input())
mx = 0
tmp = 1
arr = [float(input()) for i in range(tc)]
for i in range(tc):
n = arr[i]
tmp *= n
if tmp < 1:
tmp = 1
mx = max(mx, tmp)
if mx == 1:
print("{:.3f}".format(max(arr)))
else:
print("{:.3f}".format(mx))
説明:
小数点以下3位に出力しなければならない出力条件に基づいてround()ではなくformatを用いた.
n個の数字入力がいずれも1未満の数字である場合、その最大値が出力される.
Reference
この問題について([2670]連続部分最大乗算), 我々は、より多くの情報をここで見つけました
https://velog.io/@deankang97/백준-2670-연속부분최대곱
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
tc = int(input())
mx = 0
tmp = 1
arr = [float(input()) for i in range(tc)]
for i in range(tc):
n = arr[i]
tmp *= n
if tmp < 1:
tmp = 1
mx = max(mx, tmp)
if mx == 1:
print("{:.3f}".format(max(arr)))
else:
print("{:.3f}".format(mx))
Reference
この問題について([2670]連続部分最大乗算), 我々は、より多くの情報をここで見つけました https://velog.io/@deankang97/백준-2670-연속부분최대곱テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol