您的位置:首页 > 其它

4.10 数字哑谜和回文

2013-08-28 16:05 211 查看
int main()
{
//21978*4=87912
#if 0
int m1, m2, m3, m4, m5;
int n1, n2, n3, n4, n5;

for (m1 = 0; m1 < 10; m1++)
{
for (m2 = 0; m2 < 10; m2++)
{
if (m2 == m1) continue;
for (m3 = 0; m3 < 10; m3++)
{
if (m3 == m2 || m3 == m1) continue;
for (m4 = 0; m4 < 10; m4++)
{
if (m4 == m3 || m4 == m2 || m4 == m1) continue;
for (m5 = 0; m5 < 10; m5++)
{
if (m5 == m4 || m5 == m3 || m5 == m2 || m5 == m1) continue;

for (int n = 2; n < 10; n++)
{
if (m1 * n > 9)
{
continue;
}

n1 = m5 * n % 10;
if (n1 != m1)
{
continue;
}
n2 = m5 * n / 10 + m4 * n % 10;
if (n2 % 10 != m2)
{
continue;
}
n3 = m4 * n / 10 + m3 * n % 10 + n2 / 10 ;
if (n3 % 10 != m3)
{
continue;
}
n4 = m3 * n / 10 + m2 * n % 10 + n3 / 10;
if (n4 % 10 != m4)
{
continue;
}
n5 = m2 * n / 10 + m1 * n % 10 + n4 / 10;
if (n5 < 10 && n5 % 10 != m5)
{
continue;
}

cout << m1 << m2 << m3 << m4 << m5 << " x " << n
<< " = " << m5 << m4 << m3 << m2 << m1 << endl;
}
}
}
}
}
}
system("pause");
return 0;
#endif

//扩展问题2:25 x 25 = 625
int m,n;
for (n=1;n<10;n++)
{
for (m=1;m<10;m++)
{
if ((n*n%10 ==n) &&
(n*n/10 +(m*n%10)*2  == m) &&
(m*n/10 + (n*n/10 +m*n%10)/10 +m*n/10+m*m%10)>=0&&
(m*n/10 + (n*n/10 +m*n%10)/10 +m*n/10+m*m%10)<=9)
{
cout << m*n/10 + (n*n/10 +m*n%10)/10 +m*n/10+m*m%10<<m << n;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: