MATLAB简单解决输出某个数(组)内自然数的阶乘和问题


侵删,新人上路虽简单大佬勿喷
开始是这样的,同学matlab考试,叫我帮忙做题,其中一道就是这样,与标题不同的是题目需要用函数m文件一次性输入数组的结果;如此图
同学原题
for为主体的代码他自己做了,那我就只做了while的,我觉得归根结底都一样,思想表达出来都一样。
完整代码如下,上传不了m文件,你们可以自行复制创建m文件。(PS:调代码块我也不懂,选项没有matlab啊)

function kans=KANS2(d)
i=ones(1,length(d));
K=zeros(1,length(d));j=1;
while j<=length(i)
while i(j)<=d(j)
K(j)=K(j)+factorial(i(j));
i(j)=i(j)+1;
end
j=j+1;
end
kans=K;

明显能看出来,核心就是把两个数组慢慢引用单元素一次次的内循环完成对数组中该指定元素的求阶乘和。
操作演示
用法就是matlab打开对应文件所在路径,命令行输入
KANS2(X),就能得出对应结果
X可以是数或数组
例子:
KANS2([1,2,3,4,5,6,7,8])

ans =

列 1 至 5

       1           3           9          33         153

列 6 至 8

     873        5913       46233

缺点也很显然但都小细节,很容易添加,比如元素的±小数筛选报错,以及大范围批量运算需增加点循环条件什么的,也都易处理。
数组直接输入引用是matlab一大特色(应该),整体运算特别便捷,这里代码自然可能不够精简也有冗余,时间问题不便及时更正,欢迎指出谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值