是一个简单模拟题,但是要注意的就是,当第一次为2和第一次为1的两种特殊情况。
tmp是每次需要累加的数量,如果上次是2且下次还是2则把n给tmp;反复累加
C++ 代码
#include <cstdio>
int n;
int cnt;
int main() {
int tmp;
scanf("%d", &n);
if (n == 1) cnt ++, tmp = 0;
if (n == 2) cnt = cnt + 2, tmp = n;
while ( n != 0) {
scanf("%d", &n);
if (n == 1) {
cnt ++;
tmp = 0;
}
if (n == 2 && tmp % 2 == 0) {
cnt = cnt + 2 + tmp;
tmp = tmp + n;
}
if (n == 2 && tmp % 2 != 0) {
cnt = cnt + 2;
tmp = tmp + n;
}
}
printf("%d", cnt);
return 0;
}