##■質問内容
以下の問題に対してコードを作成し、テストは合格するのですが実行しようとしたところ「Execution Timed Out (12000 ms)」のメッセージが出てきました。
テストでは動くので恐らくコードを最適化する必要があるのではないかと思います。
このコードをどう書き換えればよいのか、また文法が間違っているところがあれば教えていただきたいです。
■問題のサイト
https://www.codewars.com/kata/growth-of-a-population/train/shell
■問題
とある町は"$1"人の住民が住んでいます。人口は毎年"$2"%増加し、さらに毎年"$3"人新しい住民が住みます。
町は住民を"$4"人以上にするために何年必要ですか?
At the end of the first year there will be:
1000 + 1000 * 0.02 + 50 => 1070 inhabitants
At the end of the 2nd year there will be:
1070 + 1070 * 0.02 + 50 => 1141 inhabitants (number of inhabitants is an integer)
At the end of the 3rd year there will be:
1141 + 1141 * 0.02 + 50 => 1213
It will need 3 entire years.
※パーセントパラメーターが2の場合、0.02に変換する必要があります
Bash
1#!/bin/bash 2nbYear() { 3 human=$1 4 year=0 5 inc=`echo "scale=5; $2/100" | bc` #パーセンテージに変換 6 while true 7 do 8 human=`echo " $human + $human * $inc + $3" | bc | sed s/.[0-9,]*$//g` #小数点以下を切り捨て 9 year=$(($year + 1)) 10 if [ "$(echo "$human >= $4" | bc)" -eq 1 ]; then 11 echo $year 12 break 13 fi 14 done 15} 16 17nbYear $1 $2 $3 $4
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/21 02:18
2019/11/21 02:21
2019/11/21 04:14