求教.这个用递归怎么实现?
//讲1~9填入3*3杨氏矩阵中,输出所有可能结果。(即要求由左向右递减,由上向下递减)#include<iostream>
using namespace std;
int main()
{
int young[3][3],sum=0;
int x1,x2,x3,x4,x5,x6,x7;
young[0][0]=9;
young[2][2]=1;
for(x1=2;x1<9;x1++)
for(x2=2;x2<9;x2++)
for(x3=2;x3<9;x3++)
for(x4=2;x4<9;x4++)
for(x5=2;x5<9;x5++)
for(x6=2;x6<9;x6++)
for(x7=2;x7<9;x7++)
{
if(x1>x2&&x1>x4&&x1!=x2)
if(x2>x5)
if(x3>x4&&x3>x6)
if(x4>x7&&x4>x5)
if(x6>x7)
if(x1!=x2&&x1!=x3&&x1!=x4&&x1!=x5&&x1!=x6&&x1!=x7&&x2!=x3&&x2!=x4&&x2!=x5&&x2!=x6&&x2!=x7&&x3!=x4&&x3!=x5&&x3!=x6&&x3!=x7&&x4!=x5&&x4!=x6&&x4!=x7&&x5!=x6&&x5!=x7&&x6!=x7)
{
sum++;
cout <<9<<" "<<x1<<" "<<x2<<endl;
cout <<x3<<" "<<x4<<" "<<x5<<endl;
cout <<x6<<" "<<x7<<" "<<1<<endl<<endl;
}//if循环结束
}//for循环结束
cout<<sum<<endl;
}
这个函数是将所有可能结果枚举了一遍然后判断是否符合条件,但是时间复杂度....呵呵~
同学说用递归是最快的....emoij~
不会用哎....要怎么实现递归啊?听不懂他说的是什么意思...