Lang:G++
Edit1234567891011121314151617181920#include<bits/stdc++.h>using namespace std;#define int long longint f[100],ans;void dfs(int x){if(x==0) return;int zh=lower_bound(f+1,f+31+1,x)-f;int zh1=zh-1;x=min(x-f[zh1],f[zh]-x);ans++;dfs(x);}signed main(){f[0]=1; f[1]=2;for(int i=2;i<=31;i++) f[i]=f[i-1]*2;int x; cin>>x;dfs(x);cout<<ans;}