来自大佬usx21145328链接
#include <stdio.h>
#include<math.h>
long Erjin(long n, int* arr) {
int i = 0, num = 0;
while (n) {
arr[i] = n % 2;
n /= 2;
if (arr[i] == 1)
num++;
i++;
}
return num;
}
int main() {
long t;
scanf("%ld", &t);
for (long i = 0; i < t; i++) {
long n;
int arr[25] = {0};
scanf("%ld", &n);
long num = Erjin(n, arr);
printf("%ld %ld\n", num, (long)pow(2, num) - 1);
}
return 0;
}

京公网安备 11010502036488号