[题目通道](Rosetta Problem - 洛谷)
CF题目:
我们先来分析一下题目,其实翻译成中文就是求八进制下的1的个数。
这道题目有两个突破口:
一是:
按照题目要求,将输进来的数字转化成八进制,再数1的个数
但是给还有一种更为简单的办法:
直接一位一位判断,在转的过程中解决。
上代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,sum=0;
scanf("%d",&a);
while(a)
{
if(a%8==1)
sum++;
a/=8;
}
printf("%d\n",sum);
return 0;
}