日期:2014-05-20  浏览次数:20645 次

简单题目,求大牛指正
// 21名运动员想要买可乐喝,现得知商家正在举行一项促销活动:
// 凡3个空可乐瓶都可以免费换取一瓶可乐;请问至少需要买多少瓶可乐才能以
// 最少代价让每个人都喝到可乐?
public static void main(String[] args)
{
final int NUM = 21;
int number =0;
int kongping =0;
for (int i = 0; i < 21; i++,number++,kongping++)
{

if (kongping == 3)
{
number = number+1;
kongping = 1;
}
if(number == NUM)
{
System.out.println(i);
break;
}
}

}

------解决方案--------------------
个人拙见
public static void main(String[] args)
    {
        final int NUM = 21;
        int number =0;
        for(int i =0;i<NUM;i++){ 
         if((number+number/3)>=21){
         System.out.println(number);
         break;
         }
         number++;
        }
 
    }
------解决方案--------------------
把循环内部的条件判断向前挪一下,或者number == NUM改成number >= NUM。不然你的number会在空瓶那里再加上1

public static void main(String[] args)
    {
        final int NUM = 21;
        int number =0;
        int kongping =0;
        for (int i = 0; i < 21; i++,number++,kongping++)
        {
             if(number == NUM)
            {
                System.out.println(i);
                break;
            }
            if (kongping == 3)
            {
                number = number+1;
                kongping = 1;
            }
            
        }
 
    }

------解决方案--------------------
可以等待的不是只要买15瓶就可以了么。     15+5+1
------解决方案--------------------
正确答案是只需购买15瓶就可以让21个人喝到21瓶
------解决方案--------------------
[size=16px]下面[size=13px]