编写 shell 脚本,计算 n 的阶
时间: 2024-06-04 13:10:43 AIGC 浏览: 91
#!/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`计算出了开始时间和结束时间之间经过的秒数和纳秒数的差值。
在Linux编写shell脚本,求n的阶乘,n=100
在Linux中,可以使用bc(basic calculator)命令计算大数的阶乘。
以下是一个求100的阶乘的shell脚本:
```bash
#!/bin/bash
n=100
result=1
for ((i=1; i<=$n; i++))
do
result=$(echo "$result * $i" | bc)
done
echo $result
```
解释:
1. 定义变量$n为100,变量$result为1,用于存储最终结果。
2. 使用for循环遍历1到$n之间的所有整数,每次循环将当前的整数乘到$result中,使用bc命令进行高精度计算。
3. 计算完成后,使用echo命令输出$result的值。
运行脚本,输出结果为:
```bash
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
```
阅读全文
相关推荐














