由于调和数包括分数,我不知道如何在程序中使用分数,因此我得到错误。请建议
下面是我试过的程序--〉〉〉
#!/bin/bash -x
read -p "Enter a number:" n
totalharmonic=0
for((count=1;count<=$n;count++))
do
harmonic=$((1/$count))
totalharmonic=$(($harmonic + $totalharmonic));
done
echo "nth harmonic number is $totalharmonic"
3条答案
按热度按时间0g0grzrc1#
不要使用bash算术(仅限整数)进行浮点计算。例如,使用
bc
或awk
或python
...bc
和10位数精度的示例:awk
示例:k97glaaz2#
。
xzabzqsa3#
!/bin/bash/
read -p“输入数字:“n;
hn=1/1;
如果[ $n -eq 1 ],则回显$hn,否则对于((i=2; i〈=$n;i++))做hn=
echo "$hn + 1/$i"
做fi回波的第n次谐波数为:$hn”