shell编程递归求阶乘
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程递归求阶乘相关的知识,希望对你有一定的参考价值。
#!/bin/sh
fn_result=1
fn_init()
fn_result=1
fn_calc()
if [ $number -le 0 ];
then
return 0
else
fn_calc `expr $number - 1`
fn_result=`expr $fn_result \* $number`
fi
return 0
fn_init
echo "please input the number:"
read number
fn_calc $number
echo $fn_result
代码如上,运行起来输入number的值之后,不显示结果也不退出,为什么啊?怎么改才可以呢?还有由于版本的不同,是不是即使代码相同的程序,在这个系统上运行正确那个系统上运行却不一定正确?还有,用expr和直接用()计算出算术表达式,有什么区别,用的时候有什么讲究吗?shell新手,请多多指教~
if [ $number -le 0 ];
then
return 0
else
fn_calc `expr $number - 1`
fn_result=`expr $fn_result \* $number`
fi
return 0
这里的$number 都应当改成$1
输出也应当在函数内完成 参考技术A fn_calc()
if
[
$number
-le
0
];
then
return
0
else
fn_calc
`expr
$number
-
1`
fn_result=`expr
$fn_result
\*
$number`
fi
return
0
这里的$number
都应当改成$1
输出也应当在函数内完成
以上是关于shell编程递归求阶乘的主要内容,如果未能解决你的问题,请参考以下文章
利用所学的shell命令,写出计算10的阶乘的脚本程序,如何编译如何进行?
2、设计一个shell程序计算n的阶乘。要求:(15分) (1) 从命令行接收参数n; (2) 在程序开始后立即判断n的合