# 猴子吃桃

问题：猴子第一天摘了若干个桃子，吃了一半，不过瘾，又多吃了1个。第二天早上将剩余的桃子又吃掉一半，并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时，发现只剩下1个桃子，问第一天它摘了多少桃子？为了加强交互性，由用户输入不同的天数n进行递推，即假设第n天的桃子数为1。同时还要增加对用户输入数据的合法性验证（如:不允许输入的天数是0和负数）

以下程序实现了这一功能，请你填补空白处内容：

```cpp
#include <stdio.h>
int main()
{
    int ret, day, i = 1, sum = 1;
    while (1)
    {
        printf("Input days:\n");
        ret = scanf("%d", &day);
        if ((ret != 1) || (day <= 0))
        {
            fflush(stdin);
            continue;
        }
        break;
    }
    __________________;
    printf("sum=%d\n", sum);
    return 0;
}
```

## template

```cpp
#include <stdio.h>
int main()
{
    int ret, day, i = 1, sum = 1;
    while (1)
    {
        printf("Input days:\n");
        ret = scanf("%d", &day);
        if ((ret != 1) || (day <= 0))
        {
            fflush(stdin);
            continue;
        }
        break;
    }
    do
    {
        sum = (sum + 1) * 2;
        i++;
    } while (i < day);
    printf("sum=%d\n", sum);
    return 0;
}
```

## 答案

```cpp
do
{
	sum = (sum + 1) * 2;
	i++;
} while (i < day);
```

## 选项

### A

```cpp
while (i < day)
{
	sum = (sum + 1) * 2;
	i++;
}
```

### B

```cpp
while (i <= day)
{
	sum = (sum + 1) * 2;
	i++;
}
```

### C

```cpp
do
{
	sum = (sum + 1) * 2;
	i++;
} while (i <= day);
```