私はbashで書いているのに問題があります... C++での動作は分かりますが、bashで実装するのに問題があります。ここに私が持っているものがあります:bashの再帰的和関数
sum()
{
let minusOne=$1-1
let result=sum $minusOne +$1
}
私はbashで書いているのに問題があります... C++での動作は分かりますが、bashで実装するのに問題があります。ここに私が持っているものがあります:bashの再帰的和関数
sum()
{
let minusOne=$1-1
let result=sum $minusOne +$1
}
終了条件が必要です。 bashでは、$((...))
は算術拡張であり、$(...)
はコマンド置換です(man pageを参照)。 sum関数を記述する
sum() {
if (($1 == 1)); then
echo 1
return
fi
local minusOne=$(($1 - 1))
echo $(($1 + $(sum $minusOne)))
}
非再帰的な方法:ここで
sum() {
set -- $(seq 1 $1)
local IFS=+
echo "$*" | bc
}
ありがとうございます! 1つの質問ですが、この値を変数にどうやって取得するのですか?あなたは 'theSum = $(sum 5)'と言っていましたが、それはエラーです(オペランドが期待されています)... – Kajzer
あなたは 'theSum = $(sum $ minusEna) –
はあなたに引数として提供数の合計を与える機能です。以下は "10"を出力します。
#!/bin/bash
sum() {
local total=0
for number in "[email protected]"; do
((total += number))
done
echo $total
}
sum 1 2 3 4
'' sum'の 'C++'バージョンを投稿できますか? – kev