私はちょうどbashでコード化することを学んでいます。私はいくつかの練習問題を実行しています。私は文法に間違ったことをしているように感じますが、どう見てもそれは間違っていません。ループ構文の場合は?
私がここに持っているコードは、1000と10000の間の '幸運な数字'を見つけるはずです。この場合、幸運な数字は、数字の合計が7になる合計数です。ラッキーナンバーの計算はそれ自身で動作しますが、ひとつの入力がないforループに入れたら、出力は無限で間違っています。
digit=0
sum=0
for ((i=1000; i<=10000; i++))
do
while [ $i -gt 0 ]
do
digit=$(($i % 10))
i=$(($i/10))
sum=$(($sum + $digit))
done
while [ $sum -gt 0 ]
do
digit=$(($sum % 10))
sum$(($sum/10))
sum2=$(($sum2 + $digit))
done
if [[ $sum2 == 7 ]];
then
echo $sum2
fi
done
誰もが私が間違ってやっているすべてのアイデア、またはそれを改善するためにも、道を持っている場合、私はそれを本当に感謝:私は唯一の問題であるforループと仮定することができます!
この行の意味は、 'sum $(($ sum?10))'です。私はそれがコピー/ペーストエラーだと仮定しています。 – eddiem
'1 <= 10000'は常にtrueです。 – kaitoy
良い質問は、特定の単一の問題を分離し、その問題を示すために必要な最小限のコードを除いてすべてを削除します。 http://sscce.org/またはhttp://stackoverflow.com/help/mcveを参照してください。 –