matlab怎么用for语句求阶乘
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab怎么用for语句求阶乘相关的知识,希望对你有一定的参考价值。
要求输入一个数,输出结果,且要判断该数的合法性
a=input('请输入一个数:');while a<0 || fix(a)~=a
disp('您输入的数不是正整数')
a=input('请重新输入:');
end
a
disp('a!=')
disp(factorial(a))
(运行后:)
请输入一个数:-20
您输入的数不是正整数
请重新输入:-12
您输入的数不是正整数
请重新输入:2.3
您输入的数不是正整数
请重新输入:-4.3
您输入的数不是正整数
请重新输入:12
a =
12
a!=
479001600追问
验证合法性没问题,但我想要的是用for语句实现阶乘,不要内置函数,改改吧?
追答a=input('请输入一个数:');
while a<0 || fix(a)~=a
disp('您输入的数不是正整数')
a=input('请重新输入:');
end
m=1;
for i=1:a
m=m*i;
end
a
disp('a!=')
disp(m)
请输入一个数:5.5
您输入的数不是正整数
请重新输入:-5.5
您输入的数不是正整数
请重新输入:-20
您输入的数不是正整数
请重新输入:5
a =
5
a!=
120
y=1;
if(x>0)
for i=x:-1:1
y=y*i;
end追问
你在改改吧,把C语言里的东西搬这来了
for循环 嵌套 算阶乘和的问题
dim as 就省略哈
循环:
Private Sub Command1_Click()
s = 0
For j = 1 To 3
t = 1
For i = 1 To j
t = t * i
Next i
s = s + t
Next j
Print s
End Sub
这样算出来是正确的
问题是“t=1”为什么不能写在s=0的后面,也就是for循环的前面
Private Sub Command1_Click()
s = 0
t = 1
For j = 1 To 3
For i = 1 To j
t = t * i
Next i
s = s + t
Next j
Print s
End Sub
这样算的话就是错了的。。是什么原因呢????请教一下~!!
而“t=1”写在第一个for循环的后面的时候,每执行一次“J”的循环,t都被重新赋值为t=1.所以前一个输出结果应该为最后一次:3*3=9
兄台,可能表达不清,多见谅!不过编程题,你最好用计算机的思维方式来想就行了,它只会一步步规则的运算。 参考技术A 循环仅仅是执行for --> next 内的代码,这样子的话循环两次之后t就等于2
然后t*i 就是6 了
以上是关于matlab怎么用for语句求阶乘的主要内容,如果未能解决你的问题,请参考以下文章