填空题 有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?请把程序补充完整。
#include<stdio.h>
int main()
{
int day, x1, x2;
day=0;
x1=1020;
while( 1)
{
x2= 2; x1=x2; day++;
}
printf("day=%d/n", day);
return 0;
}
【正确答案】
【答案解析】x1>0 x1/2-2 [解析] 这是一个简单的迭代问题,设第i天有x i 个西瓜,由题意得:x 1 =1020,x 2 =x 1 /2-2,x 3 =x 2 /2-2,…,x i =x i-1 /2-2。本题使用变量x1、x2实现迭代,在进入循环之前,x1=1020表示第一天的值,通过公式x2=x1/2-2计算出第二天的值,再存入变量x1中,以后每次都通过公式x2=x1/2-2计算出下一天的值,直到x1=0为止。在整个循环过程中,x2总是存放后一天的值,而x1总是存放前一天的值。