#include <stdio.h>
int main() {
int a, ans, b;
ans = 0;
while (scanf("%d", &a) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld") to
while(a!=1 && a!=0){
b = a/2;
ans += a%2;
a = b;
}
ans += a;
}
printf("%d\n", ans);
return 0;
}
以上是运用的转换思路(这是别人的图)

京公网安备 11010502036488号