public int getRepresentByUniqueTwo(int num) { //找到num最多可以用多少个二进制数表示 int k = 0, cur = 1; while (num >= cur << k) { k++; } return getRepresentByUniqueTwo(num, cur << (k - 1)); } private int getRepresentByUniqueTwo(int num, int cur) { if (num < 0) return 0; if (num == 0) return 1; if (cur == 0) return 0; return getRepresentByUniqueTwo(num, cur >> 1) + getRepresentByUniqueTwo(num - cur, cur >> 1) + getRepresentByUniqueTwo(num - cur * 2, cur >> 1); }@个人练习生,喜欢喊6,摸鱼,offer,求带挖洞~ 不知道这样写对不对