|
本帖最后由 张溯源 于 2020-2-29 20:52 编辑
- //第八题
- #include<iostream>
- using namespace std;
- int a[10];
- int b[8]={0,2,2,2,2};
- bool check()
- {
- int x1,x2;
- for(int i=1;i<=8;i++)
- if(a[i]==1)
- {
- x1=i;
- break;
- }
- for(int i=8;i>=1;i--)
- if(a[i]==1)
- {
- x2=i;
- break;
- }
- bool book1=(x2-x1==2);
-
- int xx1,xx2;
- for(int i=1;i<=8;i++)
- if(a[i]==2)
- {
- xx1=i;
- break;
- }
- for(int i=8;i>=1;i--)
- if(a[i]==2)
- {
- xx2=i;
- break;
- }
- bool book2=(xx2-xx1==3);
-
- int xxx1,xxx2;
- for(int i=1;i<=8;i++)
- if(a[i]==3)
- {
- xxx1=i;
- break;
- }
- for(int i=8;i>=1;i--)
- if(a[i]==3)
- {
- xxx2=i;
- break;
- }
- bool book3=(xxx2-xxx1==4);
-
- int xxxx1,xxxx2;
- for(int i=1;i<=8;i++)
- if(a[i]==4)
- {
- xxxx1=i;
- break;
- }
- for(int i=8;i>=1;i--)
- if(a[i]==4)
- {
- xxxx2=i;
- break;
- }
- bool book4=(xxxx2-xxxx1==5);
-
- return (book1 && book2 && book3 && book4);
- }
- void pr()
- {
- if(check())
- {
- for(int i=1;i<=8;i++)
- cout<<a[i];
- cout<<endl;
- }
- }
- void pmn(int i)
- {
- if(i>8)
- pr();
- else
- for(int k=1;k<=4;k++)
- if(b[k]>0)
- {
- a[i]=k;
- b[k]--;
- pmn(i+1);
- b[k]++;
- }
- }
- int main()
- {
- pmn(1);
- return 0;
- }
复制代码 |
|