您的位置:首页 > 编程语言

读书笔记之编程之美 - 4.10 数字哑谜和回文

2010-09-23 22:42 260 查看
好久没有写代码了,今天练习练习第二个问题,代码如下:
1: #include


2: 


3: using namespace std;


4: 


5: int main()


6: {


7:     int m1, m2, m3, m4, m5;


8:     int n1, n2, n3, n4, n5;


9: 


10:     for (m1 = 0; m1 < 10; m1++)


11:     {


12:         for (m2 = 0; m2 < 10; m2++)


13:         {


14:             if (m2 == m1) continue;


15:             for (m3 = 0; m3 < 10; m3++)


16:             {


17:                 if (m3 == m2 || m3 == m1) continue;


18:                 for (m4 = 0; m4 < 10; m4++)


19:                 {


20:                     if (m4 == m3 || m4 == m2 || m4 == m1) continue;


21:                     for (m5 = 0; m5 < 10; m5++)


22:                     {


23:                         if (m5 == m4 || m5 == m3 || m5 == m2 || m5 == m1) continue;


24: 


25:                         for (int n = 2; n < 10; n++)


26:                         {


27:                             if (m1 * n > 9)


28:                             {


29:                                 continue;


30:                             }


31: 


32:                             n1 = m5 * n % 10;


33:                             if (n1 != m1)


34:                             {


35:                                 continue;


36:                             }


37:                             n2 = m5 * n / 10 + m4 * n % 10;


38:                             if (n2 % 10 != m2)


39:                             {


40:                                 continue;


41:                             }


42:                             n3 = m4 * n / 10 + m3 * n % 10 + n2 / 10 ;


43:                             if (n3 % 10 != m3)


44:                             {


45:                                 continue;


46:                             }


47:                             n4 = m3 * n / 10 + m2 * n % 10 + n3 / 10;


48:                             if (n4 % 10 != m4)


49:                             {


50:                                 continue;


51:                             }


52:                             n5 = m2 * n / 10 + m1 * n % 10 + n4 / 10;


53:                             if (n5 < 10 && n5 % 10 != m5)


54:                             {


55:                                 continue;


56:                             }


57: 


58:                             cout << m1 << m2 << m3 << m4 << m5 << " x " << n


59:                                  << " = " << m5 << m4 << m3 << m2 << m1 << endl;


60:                         }


61:                     }


62:                 }


63:             }


64:         }


65:     }


66:     system("pause");


67:     return 0;


68: }


验证了一下思路,编码过程还是有很多问题的,也不是很优雅,但总算可以解出答案了。

21978 x 4 = 87912

扩展问题:

问题二:25 x 25 = 625
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: