전체 배열의 귀속 실현을 되찾다
2. 중복된 전체 배열의 귀속 실현을 제거한다
전체 배열은 첫 번째 숫자부터 각 숫자가 각각 그 뒤의 숫자와 교환되기 때문이다.우리는 먼저 이런 판단을 해 보자. 만약 한 수가 뒤의 숫자와 같다면 이 두 수는 교환되지 않을 것이다.예를 들어 122와 같이 첫 번째 수는 뒤와 212, 211로 교환된다.그리고 122에서 두 번째 수는 세 번째 수와 교환할 필요가 없지만 212에 대해 두 번째 수는 세 번째 수와 다르다. 교환한 후에 221을 얻는다.122에서 첫 번째 수와 세 번째 수를 교환하여 얻은 221과 중복되었다.그래서 이 방법은 안돼.
환종 사고는 122, 첫 번째 수 1과 두 번째 수 2를 교환한 다음에 첫 번째 수 1과 세 번째 수 2를 교환하는 것을 고려한다. 이때 세 번째 수는 두 번째 수와 같기 때문에 첫 번째 수는 세 번째 수와 교환하지 않는다.212를 고려하면 두 번째 수와 세 번째 수의 교환은 해결될 수 있다.이 때 전체 배열이 생성됩니다.
이렇게 해서 우리는 전체 배열에서 중복을 없애는 규칙을 얻었다. 중복을 없애는 전체 배열은 첫 번째 숫자부터 각 숫자가 그 뒤에 중복되지 않은 숫자와 교환되는 것이다.다음은 전체 코드입니다.// AllRange.cpp : 。
//
#include "stdafx.h"
#include<string>
#include <iostream>
void swap(char* a,char* b)
{
char temp;
temp = *a;
*a=*b;
*b=temp;
}
bool isSwap(char* str,int begin,int end)
{
for(int i=begin;i<end;i++)
{
if(str[i]==str[end])
return false;
}
return true;
}
void AllRange(char* str,int k,int m)
{
if(k == m)
{
printf("%s
",str);
}
else
{
for(int i=k;i<m;i++)
{
if (isSwap(str,k,i))
{
swap(str+k,str+i);
AllRange(str,k+1,m);
swap(str+k,str+i);
}
}
}
}
void Full(char* str)
{
AllRange(str,0,strlen(str));
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[]="122";
Full(str);
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
// AllRange.cpp : 。
//
#include "stdafx.h"
#include<string>
#include <iostream>
void swap(char* a,char* b)
{
char temp;
temp = *a;
*a=*b;
*b=temp;
}
bool isSwap(char* str,int begin,int end)
{
for(int i=begin;i<end;i++)
{
if(str[i]==str[end])
return false;
}
return true;
}
void AllRange(char* str,int k,int m)
{
if(k == m)
{
printf("%s
",str);
}
else
{
for(int i=k;i<m;i++)
{
if (isSwap(str,k,i))
{
swap(str+k,str+i);
AllRange(str,k+1,m);
swap(str+k,str+i);
}
}
}
}
void Full(char* str)
{
AllRange(str,0,strlen(str));
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[]="122";
Full(str);
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.