1个10进制数转为2进制和转为8进制, 各位上数字后2进制的值与8进制的值相同的值有 1 8 9 64 问第23个值是多少?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<string.h>
#include<string>
using namespace std;int cntHto2(int n) {int cnt = 0;while (n) {if (n % 2 ==1)cnt+=n%2;n /= 2;}return cnt;
}int cntHto8(int n) {int cnt = 0;while (n) {if (n % 8)cnt+=n%8;n /= 8;}return cnt;
}int main() {int cnt = 0;for (int i = 1;; i++) {if (cntHto2(i) == cntHto8(i)) {cnt += 1;printf("%d %d %d %d\n", cnt, i,cntHto2(i),cntHto8(i));if (cnt == 23)break;}}return 0;
}