0
我有一个任务,要求你输入1到25之间的数字,做一个数字的事实,然后询问你是否完成了,如果没有,它会重新启动循环,你做一个新的事实。我如何将这个变成一个大的声明?
我一直在为它的代码工作,直到最后一步,我才开始工作。我为1到25之间的数字做了一个while循环,但是为事实的for循环。当我试图将两者结合起来时,它没有奏效,并吐出一个错误。
clear;
clc;
alldone = 'n';
fact = 1;
num = input('Input a number between 1 and 25: ');
while (num < 1)||(num > 25);
num = input('\n That is not between 1 and 25, please try again: ');
for i=num:-1:2;
fact = fact * i;
fprintf('The factoral of %g is %g',num,fact);
end
alldone = input('Are you done? Type Y for yes: ', 's')
end
这就是我所做的,我不知道如何将for循环变成一段时间? 有谁知道?谢谢!
我唯一的评论是,当我测试代码时,我得到1.124e + 21作为事实,是因为它使用%g?我应该改用%d吗?编辑:我感谢你!得到它了! – user2237848 2014-10-05 15:37:13
很高兴你把它整理出来,我更新了答案:)祝贺你! – lucam 2014-10-05 15:46:12
@ user2237848如果您不知道:'num'的阶乘可以直接计算为'factorial(num)'或'gamma(num + 1)' – 2014-10-05 16:29:49