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

《编程之美》——中国象棋将帅问题

2013-07-15 16:43 387 查看
             即将面临找工作,最近在看《编程之美》这本书。自己能力有限所以觉得有些题目难度不小,但仍觉受益匪浅,有时间一定再读几遍。下面是关于“中国象棋将帅问题”的一些心得:

             书中给出的算法的精妙之处这里不再赘述,给出自己的想法:

原理与书中给出算法相同,通过循环实现。对其中的任意一个位置k,其余8个位置都可以用k与1到8这8个数字的和对9取模来表示(其中和为0的情况要特殊处理)。问题的关键在于除了加3与加6两个位置外其余6个位置均为合法位置,所以程序将直接打印这6个合法位置。代码:

void ValidStation()
{
for(int a=1;a<=9;a++)
{
cout<<"A: "<<a<<" B: "<<(a%9+1)<<endl;
cout<<"A: "<<a<<" B: "<<((a+1)%9+1)<<endl;
cout<<"A: "<<a<<" B: "<<((a+3)%9+1)<<endl;
cout<<"A: "<<a<<" B: "<<((a+4)%9+1)<<endl;
cout<<"A: "<<a<<" B: "<<((a+6)%9+1)<<endl;
cout<<"A: "<<a<<" B: "<<((a+7)%9+1)<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程之美 读书 面试