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新手,请多多指教~

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
输出也应当在函数内完成
参考技术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编程之函数

Shell编程——阶乘

028_shell脚本递归求值

利用所学的shell命令,写出计算10的阶乘的脚本程序,如何编译如何进行?

2、设计一个shell程序计算n的阶乘。要求:(15分) (1) 从命令行接收参数n; (2) 在程序开始后立即判断n的合

vb 求阶乘之和