귀속 함수를 어떻게 쓰는가
1592 단어 프로그래밍 소감
귀환은 귀환과 귀환 두 과정으로 나눌 수 있는데 귀환은 바로 하층으로 매개 변수를 전달하는 것이다. 귀환은 함수가 더 이상 아래로 전달되지 않을 때 층층이 되돌아오는 것을 말한다.
2. 쓰기 귀속 함수에 고려해야 할 요소:
a. 변수 하나 또는 여러 개를 어떻게 아래로 옮기는가(절대적인 것은 아니지만 이렇게 하는 것을 추천합니다. 변수는 전달 과정에서 변화가 있어야 합니다.)
b. 귀속을 어떻게 중지하는지는 합리적인 종지 조건을 설정해야 한다(원래의 규칙이 성립되지 않고 함수체가 귀속되기 전의 코드는 다시 중복되지 않는다).
c. 귀속 과정 중의 일시적 또는 중간 결과를 어떻게 보존하는가(모든 귀속이 이 상황을 고려해야 하는 것은 아니다).
주: 귀속 함수는 함수체에서 자신을 몇 번 호출할 수 있는지 제한하지 않지만, 물리 하드웨어는 26만 번(UNIX)을 넘지 않도록 한계가 있다.
예:
#include
int sum(int n,int tmp)
{ // -----------------------
if(1>n)//!!! 1.
{
printf("
");
return tmp;
}
tmp+=n;//!!! 3. 。
int m=n;
printf("+%d",n);
int ret=sum(--n,tmp);//!!! 2.
// -----------------------
printf("+%d ",m);// ,
printf("sum(%d,%d) ...
",n,tmp);
return ret;
}
int main()
{
int n=10;
printf(" :%d
",sum(n,0));
}
3. 귀속 사유(어떻게 귀속으로 복잡하고 규칙적으로 찾을 수 있는 이런 문제들을 해결하는가).
A. 규칙적인 문제를 해결하는 방안의 전형적인 부분(차원)을 찾고 이 부분(차원)의 코드가 어떻게 실현되어야 하는지만 고려한다.
B. 이 부분(차원)에서는 다음과 같은 생각만 하면 된다.
a. 매개 변수 변수를 어떻게 설정하고 전달을 어떻게 변화시키는가.
b. 종지 조건 문구를 어떻게 쓰는지, 즉 전형적인 규칙을 지키지 않는 상황이 코드상의 종지 조건으로 어떻게 변하는지.
c. 출력해야 할 텍스트 정보를 꼼꼼히 조정한다(배달 과정과 귀속 과정에 놓인 경우 중복 인쇄가 발생하지 않도록 한다).
결론: 귀속 사유의 본질적인 특징은 각 차원에서 실현되는 서로 다른 세부 사항을 잠시 소홀히 하고 고정된 특정한 부분의 비교적 큰 과정 실현에만 주목하면 된다.(규칙적이고 예외적인 상황이 많지 않아 귀환으로 실현하기에 적합하다).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
leetcode 206 Reserve Linked List(반전 체인표)python3 귀속 & 교체 사고방식모든 Leetcode 제목이 비정기적으로 Github에 모였습니다. 여러분의 비판과 지적, 토론을 환영합니다. 모든 Leetcode 제목이 비정기적으로 Github에 모였습니다. 여러분의 비판과 지적, 토론을 환영합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.