|
cnt가 초기화가 안되어있군요
님이 짜신 프로그램은 문제대로 짜여진것 같습니다 하지만 cnt를 main 함수에서 0으로 초기화 시켜주시는 것이 좋습니다
안대영 님이 쓰신 글 :
: 다음과 같이 재귀적으로 정의되는 함수 A(m,n)이 있다. A를 프로그램으로 구현하시오. 프로그램을 실행하면 m과 n을 키보드로부터 입력 받고 A(m,n)의 결과값을 모니터에 출력해야 한다. A가 구현된 소스코드는 p10.txt파일로 제출하시오. A(3,7)을 구하시오.
: A(m,n) = n + 1 if m = 0
: A(m - 1, 1) if n = 0
: A(m-1, A(m, n-1)) otherwise
: 이런데요
: 답이 1021이 나오는데 프로그램이693964번도는데 이게 맞을런지요?;;
: 제가짠 프로그램의 코드입니다. 그리고 이코드가 저문제의 답을 구하는 코드가 맞나요;; 이상해서 물어봅니다;;
: #include<stdio.h>
:
: int cnt;
: int proc(int, int);
:
: void main()
: {
: int m, n, re;
: scanf("%d %d", &m, &n);
: re=proc(m, n);
: printf("%d %d", re, cnt);
: }
:
: int proc(int m, int n)
: {
: cnt++;
: if (m==0)
: return n+1;
: else if (n==0)
: return proc(m-1, 1);
: else
: return proc(m-1, proc(m, n-1) );
: }
|