Matlab||M函数文件及函数文件的使用,并用M文件解决n!阶乘问题

M函数文件:

函数文件的第一行必须包含关键字“function”,表示m文件是函数文件,其基本格式如下:

function [输出参数形式] = 函数名 (函数形参表)

注释说明语句段

程序语句段

其中:

输出形参表:用方括号括起来的输出形参表是函数经过运算后所得到的结果变量列表

函数名:是要定义的函数名字,一般由字母,数字和下划线组成,其命名规则和变量名命名规则相同

输入形参表:是函数输入参数列表,列表中参数与参数之间用逗号来分割,是函数从外界接受数据的接口

运用示例:

编写一个求n!的阶乘函数

分析:阶乘n!的数学定义为:

n!= n*(n-1)*(n-2)*...*2*1;且规定0!= 1;

程序:

function p = fac(n)

%fac函数用于计算n!
%对应于参数n的实参应该是非负整数

if n == 0
     p = 1;
else 
     p = 1;
     i = 1;
     while i<= n 
           p = p*i;
           i = i+1;
     end
end 

函数的调用:

编写好函数文件后,就可以调用该函数来进行计算了,其方法与调用系统标准函数库文件没有本质区别

调用格式为:

[输出实参列表]=[输入实参列表]

要注意的是,在函数调用时会将输出实参依次传递给函数的形参,因此,输入实参必须与函数定义的形参中各个参数出现的次序必须完全一致,否则会出错。

比如,现在调用上面编好的函数:

>>fac(7)
  ans = 
      5040

当然,对于已编好的阶乘函数,也可以像系统提供的标准函数库一样,在其他的计算文件中调用。

如:求1!+2!+3!+...+7!

sum = 0;
for i = 1 : 7;
      sum = sum + fac(i);
end
sum

运用M函数文件示例:

采用递归法求 n!

分析:由阶乘的概念可以写出其递归定义:

0!= 1

n! = n*(n-1)

程序:

function p = factorial(n)

%factorial函数用于计算n!
%对应于参数n的实参应该是非负整数

if n == 0
     p = 1;
else 
     p = n*factorial(n-1)
end 

输出示例:

>>factorial(7)
  ans = 
      5040

 

 

 

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:像素格子 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

Jock.Liu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值