编写 shell 脚本,计算 n 的阶
时间: 2024-06-04 17:10:43 浏览: 11
#!/bin/bash
# 输入 n 的值
echo "请输入一个正整数n:"
read n
# 判断 n 是否为正整数
if [[ ! $n =~ ^[1-9][0-9]*$ ]]; then
echo "输入的不是正整数!"
exit 1
fi
# 计算 n 的阶乘
result=1
for (( i=1; i<=n; i++ )); do
result=$((result*i))
done
# 输出结果
echo "$n 的阶乘为:$result"
相关问题
编写shell脚本计算函数执行耗时,精确到毫秒
可以使用`date`命令和`bc`命令来计算函数执行耗时,精确到毫秒,例如:
```bash
#!/bin/bash
start=$(date +%s.%N) # 记录开始时间,精确到毫秒
# 这里写需要计算执行耗时的函数
your_function
end=$(date +%s.%N) # 记录结束时间,精确到毫秒
# 计算函数执行耗时,精确到毫秒
elapsed=$(echo "$end - $start" | bc)
echo "function took $elapsed seconds"
```
说明:
- `%s.%N`是`date`命令的格式化参数,用于输出从1970年1月1日00:00:00 UTC到当前时间的秒数和纳秒数。
- `bc`命令用于计算精确的数学表达式。在这个例子中,用`echo "$end - $start" | bc`计算出了开始时间和结束时间之间经过的秒数和纳秒数的差值。
用shell脚本计算圆周率
使用shell脚本计算圆周率可以采用蒙特卡罗方法。具体步骤如下:
1. 在一个正方形内画一个内切圆,圆的半径为r。
2. 在正方形内随机生成n个点,其中落在圆内的点数为m。
3. 则圆的面积为πr^2,正方形的面积为(2r)^2=4r^2,根据面积比例可得:π/4=m/n,即π=4m/n。
4. 通过shell脚本编写上述算法,可以使用echo指令输出计算结果。
具体的shell脚本代码如下:
```
#!/bin/bash
n=1000000 #生成点的数量
r=1 #圆的半径
m=0 #落在圆内的点数
for ((i=1;i<=n;i++))
do
x=$(awk 'BEGIN{print rand()}') #生成0~1之间的随机数
y=$(awk 'BEGIN{print rand()}')
d=$(echo "sqrt($x^2+$y^2)" | bc) #计算点到圆心的距离
if [ $(echo "$d<=$r" | bc) -eq 1 ]; then #判断点是否在圆内
m=$(($m+1))
fi
done
pi=$(echo "scale=10;4*$m/$n" | bc) #计算圆周率
echo "圆周率的值为:$pi"
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)