本帖最后由 郑飞 于 2014-8-1 01:30 编辑
/*思路:
1:正向思维,从0开始买可乐,28和50作为控制条件;
2:每买一瓶进入一次for循环,记得每次盖子数和可乐数都增加1;
3:进入for循环后,换可乐是个问题,所以我用了while循环把盖子全部换成可乐;
每次换到的可乐数=盖子/3 +盖子%3(这个理解了其他就好办了);
*/
class HeiMa{
public static void main(String[] args){
hekele(28);
hekele(50);
}
public static void hekele(int man){
int kele;//买的可乐数
int gaizi ;//盖子数
int people = 0;//喝到可乐的人数
int change = 0;//换到的可乐数//
for(kele=0,gaizi=0;people<man;kele++,gaizi++){
while(gaizi>2){
change = change + gaizi/3; //更新换到的可乐数(这里把当前盖子都换成可乐了)
gaizi =gaizi/3+ gaizi%3; // 更新剩余盖子数(现在盖子数=上一步换可乐剩下的盖子数+换来的可乐所带的盖子数)
}
people = kele + change ;//喝到可乐的人数=买的可乐+换的可乐
if(people==man){
System.out.println("kele="+kele);
}
}
}
}
|