NC227585. 数字游戏
描述
输入描述
第一行一个正整数(1≤T≤1000000),表示询问组数接下来T行,每行一个数x(0≤x≤1000000000)表示询问的数字由于本题数据量比较大,请选择较快的读入方式
输出描述
输出T行,每行是对应的答案
示例1
输入:
3 0 1 5
输出:
0 1 2
C++ 解法, 执行用时: 299ms, 内存消耗: 3320K, 提交时间: 2021-12-01 16:50:37
#include<iostream> using namespace std; int t,n,a,k,l,m; int main(){ scanf("%d",&t); while(t--){ scanf("%d",&n); a=n%2; k=0; while(n){ if(n%2) k++; n/=2; } l = 2*(k-a)+k%2; printf("%d\n",l); } }