저는 Java를 처음 접했으므로 참아주세요. 저는 숫자 X를 입력하고 시스템이 1에 도달 할 때까지 2 씩 감소하여 각 값을 인쇄하도록 허용하는 Java에서 재귀 메서드를 만들고 있습니다 (스캐너가 홀수 만 사용할 수 있다는 규칙을 추가해야합니다). 너무). 스캐너를 설정했지만 n에 할당 한 값을 선택하지 않는 것 같습니다.
public class Recursividad {
public static int Func(int n)
{
if (n != 1)
return 0;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
System.out.println(x);
}
}
출력은 항상 0입니다.
당신이 당신의 프로그램을 말할 때 return 0
경우 n!=1
, 그것은거야 return 0
경우 n != 1
. 따라서 무한 루프로 끝나는 인수로 0
전달하지 않으면 항상 인쇄됩니다 1
.
또한 매번 무언가를 인쇄하려면 명령이 외부가 아닌 함수 내부에 있어야합니다. System.out.println
재귀 함수 밖에 있으면 전체 재귀가 완료된 후에 만 실행되고 결과적으로 마지막 숫자 만 인쇄됩니다.
코드는 다음과 같아야합니다.
public class Recursividad {
public static int Func(int n)
{
System.out.println(n);
if (n == 1)
return n;
else
return Func(n-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int x = Func(n);
}
}
추신 : 또한 숫자가 0 또는 음수인지 확인하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다