题目:27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?

思路:

1.买M瓶饮料的话,那么可以去换M/3瓶饮料。这个时候手中还有M%3+M/3个瓶子。已经喝了M+M/3,可以用递归来做,这个2.这个数目需要用循环来选择。如果去买1瓶,然后看是否满足条件,一一相加。

3.这个题目应该是有公式法

4.当手上有两个空瓶的时候,其实是可以换一瓶,然后在还一空瓶。

程序:

#includeint count=0;int test(int t){//这里T是指手头有T个空瓶

//一共可以喝的瓶数 count=count+t;if(t<=1)return count;if(t==2)return count+1;if(t>2){return test(t/3+t%3); } }

int main(void){int t=1;while(t<40){printf("%d %d/n",t,test(t));t++; count=0; }getchar();}

从结果可以看出这个程序有点错误,买36瓶喝55瓶,买35瓶喝57瓶,这个程序有点问题。


成都蓉城 2:0 北京国安
NBA多名球星赛季报销,奖项争夺格局巨变:一场没有硝烟的武林大会