黑马程序员技术交流社区
标题:
购买可乐,求高人指点看哪里还有问题.
[打印本页]
作者:
碎流
时间:
2014-12-27 18:57
标题:
购买可乐,求高人指点看哪里还有问题.
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,
够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)
思路:
1 . 需要多少不一样的变量,可以喝到的可乐,总人数,购买的可乐数,瓶盖数.
然后,我们可以从头开始购买可乐,知道能喝到的可乐和人数相同为止.
2.通过集合,需要购买一次,或者瓶盖数多一次,都用集合记录起来,(可重复元素集合)
3.开始从0瓶开始购买可乐.如果盖子够了三个,清空瓶盖集合,我们就要让可以喝的可乐多一瓶,然后再
多一个盖子.
* */
public class Demo17 {
public static void main(String[] args) throws IOException {
int RenShu = 28; //总人数.
List PingGai = new ArrayList(); //瓶盖变量.
List GouMai = new ArrayList(); //购买的可乐.
int kele = 0; //实际能喝到的可乐, 也就是最后的实现.
while(kele < RenShu) // 当kele小于总人数时候开启循环
{
if(PingGai.size() != 3) //如果瓶盖不够三个,
{
GouMai.add(1); //就要购买一次.
PingGai.add(1); //瓶盖就会多一个.
kele ++; //能喝到可乐多一次
}
if(PingGai.size() == 3) //如果瓶盖够三个
{
PingGai.clear(); //瓶盖就没有了.也没有买可乐.
kele ++; //能喝到可乐多一次.
PingGai.add(1); //瓶盖就多一个.
}
}
System.out.println("总人数是:" + RenShu + "需要购买的可乐数量为:" + GouMai.size());
}
}
作者:
雪落纷飞
时间:
2014-12-27 22:26
思路;定义一个变量标记为瓶盖。当瓶盖不等于3的时候。继续买可乐。瓶盖数加1
但瓶盖等于三的时候就不在购买可乐,瓶盖数变为一
循环28次即可
*/
public class Demo25
{
public static void main(String[] args)
{
System.out.println(buyColes(28));
}
//可乐的购买方法
public static int buyColes(int num)
{
int cap = 0;//瓶盖数
int sum = 0;//购买可乐数
//遍历所有人并记录和操作瓶盖数和可乐树
for(int x=0;x<num;x++)
{
if(cap==3)//盖子够三个,不用买可乐,瓶盖归一
cap=1;
else//盖子不够就可乐数加一,盖子加一
{
sum++;
cap++;
}
}
return sum;
}
}
复制代码
这样应该代码简单了点,不用集合直接两个变量就可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2