#include "stdafx.h" #include <iostream> #include <algorithm> static int g_siANum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; static int g_siCnt = 0; extern void TotalPermutation(int iarray[], int size, int index); extern void PrintArrayInt(int iarray[], int size); int _tmain(int argc, _TCHAR* argv[]) { g_siCnt = 0; TotalPermutation(g_siANum, sizeof(g_siANum) / sizeof(int), 0); std::cout << g_siCnt << std::endl; return 0; } void TotalPermutation(int iarray[], int size, int index) { if (index >= size) { PrintArrayInt(iarray, size); g_siCnt++; return; } for (int i = index; i < size; i++) { std::swap(iarray[index], iarray[i]); TotalPermutation(iarray, size, index + 1); std::swap(iarray[index], iarray[i]); } } void PrintArrayInt(int iarray[], int size) { for (int i = 0; i < size; i++) { std::cout << iarray[i]; } std::cout << std::endl; }