该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定一个环形序列,包含 n 个二进制数字(每个数字为 0 或 1)。对于每个起始位置 i(0≤i<n),从 i 开始顺时针遍历整个环一周,得到一个长度为 n 的二进制数(最高位为起始位置的数字)。计算所有 n 个二进制数的总和(用十进制整数输出)。
输入格式
第一行包含一个整数 n,表示圆环上数字的个数。
第二行包含一个长度为 n 的字符串 s,字符串中只包含字符 0 和 1,表示圆环上的数字序列(按顺时针顺序给出)。
输出格式
输出一行,包含一个整数,表示所有起始位置得到的二进制数的总和(用十进制表示)。
3
010
7
样例解释
输入序列为 010,表示圆环上的数字序列为 [0,1,0]。
从索引 0 开始:序列 [0,1,0]→(010)2=(2)10
从索引 1 开始:序列 [1,0,0]→(100)2=(4)10
从索引 2 开始:序列 [0,0,1]→(001)2=(1)10
故答案是 2+4+1=7。
4
1111
60
样例解释
每个起始位置得到的二进制数都是 (1111)2=(15)10。
总和为 15×4=60。
数据规模
对于 40% 的数据,1≤n≤20。
对于 100% 的数据,1≤n≤50,si∈{1,0}。