지침 : 사용자가 N을 입력하고 N! (N * (N-1) (N-2) ... * 2 * 1을 의미 함). 힌트 : 변수 totalValue를 N으로 초기화하고, N-1에서 1까지 카운트하는 루프 변수 i를 사용하십시오.5! 120이지만 출력은 1입니다! 120입니까?
Java 계승, 5에 대한 나의 이해에서! = 5 * 4 * 3 * 2 * 1 = 120. 이 실습에서 Java 팩토리얼을 계산할 때 사용자 입력으로 5를 입력하여 Java 팩토리얼을 올바르게 계산할 수 있는지 테스트했습니다. 그러나 출력은 1로 나온다! // FIXME 주석에 대한 이해에서
userInt = scnr.nextInt();
// FIXME: Ask user to input an integer, store in userInt
totalVal = userInt;
while (userInt > 1) {
userInt = userInt - 1;
totalVal = userInt * totalVal;
} // FIXME: Add while loop that counts down to 1, updating totalVal
System.out.println(userInt + "! is " + totalVal);
} //After typing 5 and clicking Run, it shows 1! is 120
: 그냥 엿볼, 여기에 (120) 내 코드의 일부입니다 userInt에 입력에 가게를 정수를 사용자에게 물어 // 난 '에 입력 5 '를 계승을 계산하기위한 테스트로 사용합니다. 따라서 사용자 입력으로 5를 입력 할 때 왜 5가 나오지 않았습니까? 120입니까? 왜 안 그래? 120입니까?
내 코드에서 왜 1인지 설명 할 수 있습니까? 5가 아니라 120입니다! 120입니까? 또는 왜 그것이 5이어야하는지! 내가 120 일 것으로 추측하고 있었기 때문에 120 점입니까? 미리 감사드립니다. 저는이 문제를두고 머리를 감싸려고 노력하고 있습니다.
'userInt'가 1에 도달 할 때까지 감소하기 때문에 당신에게 혼란스러운 점은 무엇입니까? – shmosel
감소 할 때, 내가 틀렸다면 나에게 맞춰주세요, 즉 i = i -1? 그래서 그것은 내 코드에서 1이라고 말할 수 있습니다! userInt = userInt - 1 때문에 120입니까? 왜 그것이 1 인 지 이제는 의미가 있습니다! 나는 5라고 생각했기 때문에 처음에는 혼란 스러웠습니다! = 5 * 4 * 3 * 2 * 1 = 120이고 출력이 5로 표시되어야한다고 가정했습니다! 120 – acruz30
맞습니다. – shmosel