《编程之美》——中国象棋将帅问题
2013-07-15 16:43
387 查看
即将面临找工作,最近在看《编程之美》这本书。自己能力有限所以觉得有些题目难度不小,但仍觉受益匪浅,有时间一定再读几遍。下面是关于“中国象棋将帅问题”的一些心得:
书中给出的算法的精妙之处这里不再赘述,给出自己的想法:
原理与书中给出算法相同,通过循环实现。对其中的任意一个位置k,其余8个位置都可以用k与1到8这8个数字的和对9取模来表示(其中和为0的情况要特殊处理)。问题的关键在于除了加3与加6两个位置外其余6个位置均为合法位置,所以程序将直接打印这6个合法位置。代码:
书中给出的算法的精妙之处这里不再赘述,给出自己的想法:
原理与书中给出算法相同,通过循环实现。对其中的任意一个位置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; } }
相关文章推荐
- 编程之美1.2 | 中国象棋将帅问题
- 《编程之美》读书笔记01: 1.2中国象棋将帅问题
- 编程之美——中国象棋将帅问题
- 《编程之美》读书笔记(一):中国象棋将帅问题
- 《编程之美》——中国象棋将帅问题
- 《编程之美》:1.2—中国象棋将帅问题
- 《编程之美》读书笔记(1)--中国象棋将帅问题
- 《编程之美》中国象棋将帅问题
- 《编程之美》中国象棋将帅问题
- 《编程之美》学习笔记——中国象棋将帅问题
- 编程之美——1.2 中国象棋将帅问题
- 编程之美之中国象棋将帅问题
- 《编程之美》读书笔记(一):中国象棋将帅问题
- 编程之美:第一章 1.2 中国象棋将帅问题
- 《编程之美》的笔记-1.2 中国象棋将帅问题
- 《编程之美》读书笔记(一):中国象棋将帅问题
- 《编程之美》学习笔记 1.2中国象棋将帅问题
- 《编程之美》 -- 中国象棋将帅问题和一摞烙饼的排序
- 《编程之美》 1.2 中国象棋将帅问题
- 《编程之美》读书笔记(一):中国象棋将帅问题