代码模板如下:
bool check()
{
//if(满足出口条件) return true;
else return false;
}
//考虑第K位,前面已经排定
void f(int k)
{
if(k==9)
if(check())ans++;
// 从k往后的数字都可以放在K位
for(int i=0;i<9;i++)
{
{int t=a[i];a[i]=a[k];a[k]=t;}
f(k+1);//递归
{int t=a[i];a[i]=a[k];a[k]=t;}//回溯
}