简单题目,求大牛指正//21名运动员想要买可乐喝,现得知商家正在举行一项促销活动://凡3个空可乐瓶都可以免
简单题目,求大牛指正
//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]
让我来解释一下为什么说买15瓶是正确答案:
@表示买的那瓶水,而1表示送的那瓶水,下面用图解法分析一下:
@@@ 1@@ 1@@ 1@@ 1@@ 1@@ 1@@
第一个@@@表示先买了三瓶水,下面的1@@表示送了一瓶水加上之后再买的两瓶水凑成三瓶水,然后又可以送一瓶水。[/size]
这样买的水的瓶数(即@的个数)共有15瓶。[/size]
