洛谷P1008 三连击
程序员文章站
2024-02-01 19:49:40
...
P1008 三连击
思路:递归
代码:
#include<iostream>
using namespace std ;
int a[9] = {0} ;
int b[10] = {0} ;
bool dep ()
{
if (((a[0] * 100 + a[1] * 10 + a[2]) * 2 == a[3] * 100 + a[4] * 10 + a[5]) && ((a[0] * 100 + a[1] * 10 + a[2]) * 3 == a[6] * 100 + a[7] * 10 + a[8]))
return true ;
return false ;
}
void dfs (int index)
{
if (index == 9)
{
if (dep () == true)
{
cout << a[0] * 100 + a[1] * 10 + a[2] << " " << a[3] * 100 + a[4] * 10 + a[5] << " " << a[6] * 100 + a[7] * 10 + a[8] << endl ;
}
return ;
}
for (int i = 1; i < 10; i++)
{
if (!b[i])
{
a[index] = i ;
b[i] = 1 ;
dfs (index + 1) ;
b[i] = 0 ;
}
}
}
int main ()
{
dfs (0) ;
return 0 ;
}