一个锻炼脑力的脑筋急转弯
10块买5瓶汽水,5瓶汽水5个盖子5个空瓶。。。
好麻烦,写个程序吧
要点:分析出循环条件
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
int bottle=0,bottle_cap=0,empty_bottle=0;
int num=0,money=0;
printf("Please input your money :\n");
while(scanf("%d",&money)==1)
{
printf("Now the money you have is %d $!\n",money);
bottle = money/2;
int temp=0,temp_cap=0,temp_empty=0;
bottle_cap = bottle;//5个盖
empty_bottle = bottle;//5个瓶子
num += bottle;//喝了5瓶
while(bottle_cap/4 >0 || empty_bottle/2>0)
{
//处理瓶盖 bottle_cap
temp_cap += bottle_cap/4;
bottle_cap=bottle_cap%4;
temp_empty += empty_bottle/2;
empty_bottle=empty_bottle%2;
temp = (temp_empty+temp_cap);
num += temp;
empty_bottle += temp;
bottle_cap += temp;
temp_cap = 0;
temp_empty = 0;
temp=0;
}
printf("According to your money...\n");
printf("you can buy %d bottles'drink\n",num);
num = 0;
}
return 0;
}
实验现象预设: