62,072
社区成员
发帖
与我相关
我的任务
分享
const static int Size = 10;
bool v[Size];
int data[Size];
int count;
void Expression::DFS(int step)
{
if(step == Size)
{
bool equal = Equal(1.0*data[0]/data[1] + 1.0*data[2]/data[3]
+ 1.0*data[4]/data[5],
1.0*data[6]/data[7]+1.0*data[8]/data[9]);
if( equal )
{
cout<<data[0]<<"/"<<data[1]<<"+"<<data[2]<<"/"<<data[3]<<"+"
<<data[4]<<"/"<<data[5]<<"="<<data[6]<<"/"<<data[7]
<<"+"<<data[8]<<"/"<<data[9]<<"\n";
++count;
}
return;
}
for(int i=0; i<Size; ++i)
{
if(!v[i])
{
v[i] = true;
data[step] = i+1;
DFS(step+1);
v[i] = false;
}
}
}
WHERE CAST(1.0*a.i/b.i + 1.0*c.i/d.i + 1.0*e.i/f.i AS DECIMAL(10,8)) = CAST(1.0*g.i/h.i + 1.0*k.i/j.i AS DECIMAL(10,8))
DECLARE @t TABLE (i INT)
INSERT @t SELECT 1
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
UNION ALL SELECT 5
UNION ALL SELECT 6
UNION ALL SELECT 7
UNION ALL SELECT 8
UNION ALL SELECT 9
UNION ALL SELECT 10
SELECT a.i,b.i,c.i,d.i,e.i,f.i,g.i,h.i,k.i,j.i
FROM @t a
INNER JOIN @t b
ON b.i NOT IN(SELECT i FROM @t WHERE i=a.i)
INNER JOIN @t c
ON c.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i)
INNER JOIN @t d
ON d.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i)
INNER JOIN @t e
ON e.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i)
INNER JOIN @t f
ON f.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i or i=e.i)
INNER JOIN @t g
ON g.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i or i=e.i or i=f.i)
INNER JOIN @t h
ON h.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i or i=e.i or i=f.i or i=g.i)
INNER JOIN @t k
ON k.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i or i=e.i or i=f.i or i=g.i or i=h.i)
INNER JOIN @t j
ON j.i NOT IN(SELECT i FROM @t WHERE i=a.i or i=b.i or i=c.i or i=d.i or i=e.i or i=f.i or i=g.i or i=h.i or i=k.i)
WHERE a.i/b.i + c.i/d.i + e.i/f.i = g.i/h.i + k.i/j.i