觉得一个程序员的实力绝对是与其算法水平成正比的,所以这个部分的博客主要是我看到的比较好的算法的总结,算法的提高主要是看-思考-变
所以觉得写博客还是比较好的方法,最近在看编程之美,就从这里开始吧
中国象棋将帅问题其实还是个比较简单的问题,不过有一个解法还是吸引了我,题目在上面
上代码
BYTE i = 81;
while(i--){
if(i/9%3 == i%9%3){
continue;
printf(“A= %d,B=%d\n”,i/9 + 1,i % 9 + 1);
}
}
仔细看,这就是实现了1重循环做了2重的事情
由此我们可以有一个通式即把2重循环变成1重
比如
for(int i = 0;i < m;i ++){
for(int j = 0;j < n;j++){
}
}
变成
byte count = m * n;
while(count >= 0){
// i就是count / n
// j就是count%n
count --;
}