1에서 25 사이의 숫자를 입력하라는 과제가 있습니다. 숫자의 요인을 수행 한 다음 완료되었는지 묻습니다. 그렇지 않으면 루프를 다시 시작하고 새로운 요인을 적용합니다.어떻게 이것을 진술하는 동안 하나의 큰 것으로 만들 수 있습니까?
저는 코드에 대한 작업을 해왔고 마지막 단계까지 작동 시켰습니다. 1과 25 사이의 숫자에 대해서는 while 루프를 만들었지 만, factoral에 대해서는 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 루프를 잠시 동안으로 전환하는 방법을 모르겠습니다. 아는 사람 있습니까? 고맙습니다!
내 유일한 의견은 내가 코드를 시험해 볼 때, factoral로서 1.124e + 21을 얻었습니다. 그 이유는 % g을 사용했기 때문입니까? 대신 % d을 사용해야합니까? 편집 : 나는 당신을 감사했다! 알았다! – user2237848
다행 이군요, 어쨌든 답변을 업데이트했습니다 :) 축하합니다! – lucam
@ user2237848 당신이 모른다는 경우 :'num'의 계승은'계승 (num)'또는'감마 (num + 1)'로 직접 계산 될 수 있습니다. –