public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n/2);
System.out.print(", " + n);
}
}
무엇이 홀수에 대해이 코드를 제공합니다. 우리가 그것을 나눌 때 그것은 정수가되지 않을 것입니다.재귀 매개 변수 문제
public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n/2);
System.out.print(", " + n);
}
}
무엇이 홀수에 대해이 코드를 제공합니다. 우리가 그것을 나눌 때 그것은 정수가되지 않을 것입니다.재귀 매개 변수 문제
Java의 정수 나누기 결과가 정수이기 때문에 신비가 없습니다.
n/2
이것은 분수 부분이 무시되는 정수 나누기입니다.
System.out.println(3/2); // prints 1
System.out.println(3.0/2); // prints 1.5
System.out.println(3/2.0); // prints 1.5
System.out.println(3.0/2.0); // prints 1.5
파람은 PARAM 5, 함수가 PARAM과 함께있을 것입니다 다음 호출 될 것입니다 경우 2 Java 또는 대부분의 다른 프로그래밍 언어에서
, 당신은에 의해 정수를 나눌 때, 예를 들어, int로 반올림합니다 정수이면 결과는 정수가됩니다. 십진수가 발생하면, 예를 들어 말 :
5/2=2.5
후, 소수점 앞의 숫자는 정수로서 취급되며 2가 선택 될 것이다. 사용자가 명시 적으로 부동 또는 이중으로 정수를 변환 할 경우
, 당신은 다음의 변환 중 하나를 사용할 수 있습니다
이(float) 3/2;
(double) n/2;
위 명시 적으로 진수로 변환합니다.
@ 루이스 와서 만 : 저는 번호의 바닥 기능을 사용한다고 언급했습니다. 따라서 바닥 (-1/2)은 0이됩니다. –
전통적으로 [바닥]이 의미하는 것이 아니라 [no,] (http://en.wikipedia.org/wiki/Floor_and_ceiling_functions#Examples) Java 자체에서] (http://docs.oracle.com/javase/6/docs/api/java/math/RoundingMode.html#FLOOR)를 참조하십시오. –
왜 시도해보고 보지 않으시겠습니까? –
진짜 질문이 아닙니다 – developer