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