📄 pku1090.cpp
字号:
#include <stdio.h>
#include <string.h>
#define X 10000000
int v[1001];
int N;
int ans[100];
void Add1()
{
int i;
ans[0] += 1;
for (i = 0; i < 99; i++)
{
if (ans[i] >= X)
{
ans[i + 1]++;
ans[i] -= X;
}
else
{
break;
}
}
}
void Mul2()
{
int i;
for (i = 0; i < 100; i++)
{
ans[i] *= 2;
}
for (i = 0; i < 100; i++)
{
if (ans[i] >= X)
{
ans[i + 1] ++;
ans[i] -= X;
}
}
}
void Show()
{
int i = 99;
for (; i > 0; i--)
{
if (ans[i])
{
break;
}
}
printf("%d", ans[i--]);
for (; i >= 0; i--)
{
printf("%07d", ans[i]);
}
printf("\n");
}
void Solve()
{
int i, j;
memset(ans, 0, sizeof(ans));
for (i = 0; i < N; i++)
{
scanf("%d", &v[i]);
}
for (i = 1; i < N; i++)
{
if (v[i])
{
for (j = i - 1; j >= 0; j--)
v[j] = (v[j] + 1) % 2;
}
}
for (i = N - 1; i >= 0; i--)
{
Mul2();
if (v[i])
{
Add1();
}
}
Show();
}
int main()
{
while (EOF != scanf("%d", &N) && N)
{
Solve();
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -