n 개 요 소 를 생 성 하 는 전체 배열 C 구현
당시 선생님 께 서 내 놓 으 신 해답 은 i 번 째 요소 인 리 를 최 우선 으로 가정 하 는 것 이 었 습 니 다. 그래서 f (r1, r2,..., rn) = f (ri U {r1, r2,..., rn) = U (ri & f (r1, r2,..., rn) 는 알 아 들 었 을 것 입 니 다. 그런데 지금 이 필 기 를 보고 또 취 했 습 니 다.(이 물건 이 내 가 수업 시간 에 쓴 노트 라 니.....)
나중에 스스로 곰 곰 이 생각해 보면 사실은 매우 간단 한 문제 이다. 역 추적 법 을 이용 하여 문 제 를 하나의 배열 나무 로 보면 쉽게 해결 할 수 있다.아래 에 원본 코드 를 놓 습 니 다. 이것 은 C 로 이 루어 진 것 입 니 다. C + + 를 사용 하기 가 정말 귀 찮 습 니 다.
// =====================【 】==================
// @ author : zhyh2010
// @ date : 20150606
// @ version : 1.0
// @ description :
// =====================【 】==================
#include <stdio.h>
#include <stdlib.h>
#define NUM 4
char arr[NUM] = { 0 };
int m_solution_num = 0;
void init()
{
for (int i = 0; i != NUM; i++)
{
arr[i] = 'A' + i;
}
}
void output()
{
printf(" %d :
", ++m_solution_num);
for (int i = 0; i != NUM; i++)
{
printf("%c\t", arr[i]);
}
printf("
");
}
void swap(char * a, char * b)
{
char aa = *a;
char bb = *b;
aa = aa ^ bb;
bb = aa ^ bb;
aa = aa ^ bb;
*a = aa;
*b = bb;
}
void solve(int curpos)
{
if (curpos >= NUM)
{
output();
return;
}
// 0, curpos
for (int i = curpos; i != NUM; i++)
{
swap(&arr[curpos], &arr[i]);
solve(++i);
--i;
swap(&arr[curpos], &arr[i]);
}
}
void main()
{
init();
solve(0);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.