当前位置: 代码迷 >> 综合 >> HihoCoder1410 Powers of Two
  详细解决方案

HihoCoder1410 Powers of Two

热度:7   发布时间:2024-01-28 00:38:40.0

传送门:HihoCoder1410 Powers of Two

题目描述

在这里插入图片描述

测试样例

Sample Input
7Sample Output
2

题目大意

??给定一个正整数N,可以将N表示为2的几个正或负幂的和。例如:7=22+21+20或7=23+(-2)0
求最少的加数个数。

AC代码

#include<cstdio>
#include<algorithm>
using namespace std;
int fun(int n)
{int m=1;while(m<n)m<<=1;if(m==n)return 1;int t=min(n-(m>>1),m-n); // 选出差较小的return fun(t)+1;
}
int main()
{int n;scanf("%d",&n);printf("%d\n",fun(n));return 0;
}