统计1的个数就是答案
假设现在有一个长度为n的串有n(n>=0)个1,这时候的合法位置就是n,你可以试着向串里插入几个0,会发现,在n位置前边插入0,要么把一个1挤到n后边,要么把一个0挤到n后边,n左边的0和右边的1始终保持相等。0插到后边不算数。。
讨论里有个证明:设所有数字和为sum,k位置断开,前半段和为i,后半段为sum - i;前半段有sum - i 个 0 (题设条件),有k - sum + i 个 1,由于和为i,所以 k - sum + i = i,得 k = sum
#include <stdio.h>
int main()
{
int res = 0;
char ch;
while((ch = getchar()) && ch != '\n')
if(ch == '1')
++res;
printf("%d\n",res);
return 0;
}