在matlab中使用for循环求1到10阶乘的值

如题所述

用matlab设计程序如下:

for i=1:10

    sum=1;

for j=1:i

sum=sum*j;

end

sum

end

运行结果显示,1到10的阶乘分别是:  1、2、  6、 24、120、 720、5040、40320、362880  、3628800。

运行结果如图:

扩展资料

MATLAB中for循环的语法是 -

for index = values 

 ...end。

其中,values的值取如下格式:





温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-15

源程序代码以及算法解释如下:

matlab求1-10的阶乘的函数源码如下:

function p = factorial()

p=1;

for a=1:10%设置要求的阶乘

for i=1:a%循环遍历从1到a

    p=p*i;%遍历相乘

end;//函数结束

p%输出结果

p=1;%p还原其初始值

end

end

程序运行结果如下:


扩展资料:

C++实现求1到10的阶乘之和,代码如下:

#include<stdio.h>

int main()

{

 double a,b=1,sum=0;

 for(a=1;a<=10;a++)

 {

  b = a*b; /* 原理:1!等于1乘以1,2!等于1!乘以2,3!等于2!乘以3,以此类推 ,10!等于9!乘以10 */ 

  sum = sum+b; /* 依次将1到10的阶乘相加 */ 

 }

 printf("%lf\n",sum);

 return 0;

}

同理,如果求一个已知整数Number1到另一个已知整数Number2的阶乘之和,只需在代码里做以下修改和替换:

#include<stdio.h>

int main()

{

 double a,b=1,sum=0;

 for(a=Number1;a<=Number2;a++)  /* 在此处用具体的值替换Number1和Number2,如求10到100的阶乘之和,只需在此处用10替换Number1,100替换Number2 */

 {

  b = a*b; 

  sum = sum+b; 

 }

 printf("%lf\n",sum);

 return 0;

}

本回答被网友采纳
第2个回答  2017-03-28

这几个语句可以用:

第3个回答  2017-03-28
sum = 1;
for i = 1:1:10
sum = sum * i;
end
disp(['10的阶乘 = ',num2str(sum)]);
第4个回答  2019-07-19

相似回答