随笔分类 - 编程之美
摘要:1题目 下过中国象棋的朋友都知道,双方的“将”和“帅”相隔遥远,并且它们不能照面。在象棋残局中,许多高手能利用这一规则走出精妙的杀招。假设棋盘上只有“将”和“帅”二子(为了下面叙述方便,我们约定用A 表示“将”,B 表示“帅”) A、B 二子被限制在己方3×3 的格子里运动。例如,在如上的表格里,A 被正方形{d10, f10,d8, f8}包围,而B 被正方形{d3, f3, d1, f1}包围。每一步,A、B 分别可以横向或纵向移动一格,但不能沿对角线移动。另外,A 不能面对B,也就是说,A 和B 不能处于同一纵向直线上(比如A 在d10 的位置,那么B 就不能在d1、d2 以及
阅读全文
摘要:1题目对一字节的无符号变量,求其二进制表示中1的个数2代码#include <cstdio>#include <iostream>using namespace std;typedef unsigned char byte;//一般解法byte solution1(byte n){ int cnt = 0; while(n){ if(n%2) cnt++; n /= 2; } return cnt;}/* * 1.最后一位是1,则n&(n-1)最后一个1变为0。 * 2.最后一位是0,则n&(n-1)将最后一个1变为0。...
阅读全文


浙公网安备 33010602011771号