假设你当前有 m 个金币,如果你可以任意组出小于等于 m / 2 个金币,那么只要加一个钱袋放 m - m / 2 个金币即可。
#include"cstdio" int main() { int m,ans=0; scanf("%d",&m); while(m) m>>=1,ans++; printf("%d",ans); return 0; }