
2个回答
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询