누군가 스택을 사용하여이 프로그램의 작업을 설명 할 수 있습니까?

아몰

재귀에 손을 대고 싶었지만 오해하는 것 같습니다.

나는 책에서 질문을 읽었고 약간 혼란스럽고 비좁고 싶지 않습니다. 함수 호출에 대해서도 스택으로 견고한 설명을 원합니다.

class rectest
{
int values[];

rectest(int i)
{
    values = new int[i]; 
}

 void printarray(int i)
  {
    if(i==0)
        return ; 
    else printarray(i-1);
    System.out.print(values[i-1]+" ");
  }
 }

public class recursion 
{
  public static void main(String args[])
   {
    rectest ob = new rectest(10);
    int i ; 
    for(i=0 ; i<10 ; i++)
        ob.values[i] = i ;
    ob.printarray(10);
   }
}
Abhishek Chaubey

RECURSION 은 무엇이든 반복해서 부르는 것을 의미합니다.

이것은 재귀가 어떻게 작동하는지 배우는 전통적이고 중요한 프로그램 중 하나입니다. 재귀이고 왜 계승 계산의 예를 들어 보겠습니다. 의사 코드는 다음과 같습니다.

계승 함수는 다음과 같습니다.

input: integer n such that n >= 1
output: [n × (n-1) × (n-2) × … × 1]

    1. if n is >= 1, return [ n × factorial(n-1) ]
    2. otherwise, return 1

end factorial

이제 여기서 일어나는 일은 항상 자신을 계속해서 호출하는 [n * factorial (n-1)]을 반환한다는 것입니다.

이제 당신의 상황을 고려합시다

 public class recursion 
    {
      public static void main(String args[])
       {
        rectest ob = new rectest(10);

// 여기서 객체를 초기화하고 생성자를 호출하고 크기가 10 인 배열을 초기화합니다.

int i ; 
for(i=0 ; i<10 ; i++)
    ob.values[i] = i ;

// 여기서는 0 번 위치 값 [0] = 0과 같은 특정 값에 모든 멤버 변수를 할당합니다.

ob.printarray (10); // 여기서 당신이 지금 전달한 10 개의 값을 인쇄하고 있습니다. 여기서 중요한 일이 발생합니다.

}} 이제 printarray()여기 에서 메서드를 살펴보십시오.

void printarray(int i)
  {
    if(i==0)
        return ; 
    else printarray(i-1);
//printarray(i-1) here it calls the method itself so as to print all the values recursively 
    System.out.print(values[i-1]+" ");
  }

더 많은 질문이 있으면 그게 다야

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

누군가이 파이썬 프로그램에서 *의 사용을 설명 할 수 있습니까?

분류에서Dev

누군가이 자바 프로그램의 알고리즘을 설명 할 수 있습니까?

분류에서Dev

누군가이 C ++ 프로그램의 출력을 설명 할 수 있습니까?

분류에서Dev

누군가 벡터와 알고리즘을 사용하여이 C ++ 프로그램을 설명 할 수 있습니까?

분류에서Dev

누군가이 기능이 수행하는 작업을 단계별로 설명 할 수 있습니까?

분류에서Dev

누군가가이 NASM 프로그램의 작동 방식을 설명해 줄 수 있습니까?

분류에서Dev

누군가이 명령의 기능을 설명 할 수 있습니까?

분류에서Dev

누군가이 두 가지 질문 (c 프로그램, 뮤텍스, 스레드)의 해결책을 설명 할 수 있습니까?

분류에서Dev

누군가 "$ {files [@]}"의 기능을 설명 할 수 있습니까?

분류에서Dev

누군가이 C ++ 줄을 설명 할 수 있습니까?

분류에서Dev

누군가이 바이올린의 출력을 설명 할 수 있습니까?

분류에서Dev

누군가이 코드의 기능을 설명 할 수 있습니까?

분류에서Dev

누군가 open mpi로이 valgrind 출력을 설명 할 수 있습니까?

분류에서Dev

누군가 내가 프로그램을 실행할 때 왜 이것을 얻을 수 있는지 설명 할 수 있습니까? (간단한 자바 다형성)

분류에서Dev

누군가 데이터 프레임에 사용될 때 루프의 직감을 설명 할 수 있습니까?

분류에서Dev

누군가 이러한 부트 스트랩 클래스의 작동 방식을 설명 할 수 있습니까?

분류에서Dev

Js Number.parseInt 함수의 이상한 동작, 누군가 그것을 설명 할 수 있습니까?

분류에서Dev

누군가이 사전 동작을 설명 할 수 있습니까?

분류에서Dev

누군가 Heroku toolbelt를 설치하는이 wget 명령의 기능을 설명 할 수 있습니까?

분류에서Dev

누군가 Heroku toolbelt를 설치하는이 wget 명령의 기능을 설명 할 수 있습니까?

분류에서Dev

누군가이 find 메서드 동작을 설명 할 수 있습니까?

분류에서Dev

누군가이 반올림 동작을 설명 할 수 있습니까?

분류에서Dev

LLVM IR-누군가이 동작을 설명 할 수 있습니까?

분류에서Dev

누군가 eclipse Java 프로젝트의 .settings 폴더에 포함 된 내용을 설명 할 수 있습니까?

분류에서Dev

누군가 SUM 함수 작업을 설명 할 수 있습니까?

분류에서Dev

누군가가 JS / jQuery로 그리드를 생성하는이 기능을 설명 할 수 있습니까?

분류에서Dev

누군가 내 코드의 문제점을 설명하고 설명 할 수 있습니까?

분류에서Dev

누군가 unmountComponentAtNode '가하는 일을 가능한 가장 평범한 용어로 설명 할 수 있습니까?

분류에서Dev

누군가이 typescript 메서드 서명을 설명 할 수 있습니까?

Related 관련 기사

  1. 1

    누군가이 파이썬 프로그램에서 *의 사용을 설명 할 수 있습니까?

  2. 2

    누군가이 자바 프로그램의 알고리즘을 설명 할 수 있습니까?

  3. 3

    누군가이 C ++ 프로그램의 출력을 설명 할 수 있습니까?

  4. 4

    누군가 벡터와 알고리즘을 사용하여이 C ++ 프로그램을 설명 할 수 있습니까?

  5. 5

    누군가이 기능이 수행하는 작업을 단계별로 설명 할 수 있습니까?

  6. 6

    누군가가이 NASM 프로그램의 작동 방식을 설명해 줄 수 있습니까?

  7. 7

    누군가이 명령의 기능을 설명 할 수 있습니까?

  8. 8

    누군가이 두 가지 질문 (c 프로그램, 뮤텍스, 스레드)의 해결책을 설명 할 수 있습니까?

  9. 9

    누군가 "$ {files [@]}"의 기능을 설명 할 수 있습니까?

  10. 10

    누군가이 C ++ 줄을 설명 할 수 있습니까?

  11. 11

    누군가이 바이올린의 출력을 설명 할 수 있습니까?

  12. 12

    누군가이 코드의 기능을 설명 할 수 있습니까?

  13. 13

    누군가 open mpi로이 valgrind 출력을 설명 할 수 있습니까?

  14. 14

    누군가 내가 프로그램을 실행할 때 왜 이것을 얻을 수 있는지 설명 할 수 있습니까? (간단한 자바 다형성)

  15. 15

    누군가 데이터 프레임에 사용될 때 루프의 직감을 설명 할 수 있습니까?

  16. 16

    누군가 이러한 부트 스트랩 클래스의 작동 방식을 설명 할 수 있습니까?

  17. 17

    Js Number.parseInt 함수의 이상한 동작, 누군가 그것을 설명 할 수 있습니까?

  18. 18

    누군가이 사전 동작을 설명 할 수 있습니까?

  19. 19

    누군가 Heroku toolbelt를 설치하는이 wget 명령의 기능을 설명 할 수 있습니까?

  20. 20

    누군가 Heroku toolbelt를 설치하는이 wget 명령의 기능을 설명 할 수 있습니까?

  21. 21

    누군가이 find 메서드 동작을 설명 할 수 있습니까?

  22. 22

    누군가이 반올림 동작을 설명 할 수 있습니까?

  23. 23

    LLVM IR-누군가이 동작을 설명 할 수 있습니까?

  24. 24

    누군가 eclipse Java 프로젝트의 .settings 폴더에 포함 된 내용을 설명 할 수 있습니까?

  25. 25

    누군가 SUM 함수 작업을 설명 할 수 있습니까?

  26. 26

    누군가가 JS / jQuery로 그리드를 생성하는이 기능을 설명 할 수 있습니까?

  27. 27

    누군가 내 코드의 문제점을 설명하고 설명 할 수 있습니까?

  28. 28

    누군가 unmountComponentAtNode '가하는 일을 가능한 가장 평범한 용어로 설명 할 수 있습니까?

  29. 29

    누군가이 typescript 메서드 서명을 설명 할 수 있습니까?

뜨겁다태그

보관