1 条题解
-
1
第一步,任选一个非负整数 ,将 增加 ,这一步所需付出的代价为 。 第二步,将 乘以 ,这一步无需付出任何代价。
我们可以换一种说法: 将 减少 ,这一步所需付出的代价为 。 如果 是 的倍数,则将它除以 ,这一步无需付出代价。 给出一个 ,对 进行以上操作,求让 变为 的最小代价。
所以这就是在求 二进制中 的个数。
代码:
#include<cstdio> signed main(){ int n,ans(0); scanf("%d",&n); while(n){ ans+=(n&1); n>>=1; } printf("%d",ans); return 0; }
- 1
信息
- ID
- 4632
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者