黑马程序员技术交流社区

标题: 求助,这题目怎么做 [打印本页]

作者: wei19910428    时间: 2016-5-23 23:37
标题: 求助,这题目怎么做

28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?
作者: 我有上将潘凤    时间: 2016-5-24 00:41
class Text extends Thread {
        public static void main(String[] args) {
                int[] arr = new int[20];        //定义一个数组,足够大即可,因为数组元素初始值默认为1
                int sum1 = 0;               
                int count = 0;                //用于计数瓶数
                while (true) {
                        count++;                //每次循环到这表示买一瓶
                        arr[0]++;                //这里同样如此       
                        for (int i = 0;i<arr.length-1;i++) {
                                if (arr[i] == 0) {
                                        break;
                                }
                                if (arr[i] == 3) {                               
                                        arr[i+1]++;        //每三瓶换一瓶               
                                        arr[i] = 0;        //然后把自身初始化为零,不然下次循环无法判断了
                                        sum1 += 3;        //因为把自身置为零了,所以用sum1来总和所有被置零的数目
                                }
                        }
                        int sum2 = 0;
                        for (int i = 0;i<arr.length;i++) {        //求和数组中现有数的总和
                                sum2 +=arr[i];
                        }
                        if ((sum1+sum2) == 50) {        //被置零的数加上数组中现有元素的总数即为总瓶数。
                                break;
                        }
                }
                System.out.println("要买"+count+"瓶可乐。");
        }
}
作者: liming1990422    时间: 2016-5-24 13:41
本帖最后由 liming1990422 于 2016-5-24 13:43 编辑

新手 不会玩 发错格式了

作者: liming1990422    时间: 2016-5-24 13:42
liming1990422 发表于 2016-5-24 13:41
public static void main(String[] args) {                 // TODO Auto-generated method stub                 Scanner sc =new Scan ...

public static void main(String[] args) {
                // TODO Auto-generated method stub
                Scanner sc =new Scanner(System.in);
                System.out.println("请输入人数");
                int b = sc.nextInt();
                int a = maikele(b);
                System.out.println(a);
        }

        private static int maikele(int b) {
                // TODO Auto-generated method stub
                int ct =1;                //计数器
                int n=1;                //可乐买的瓶数
                while(true){
                        if(ct==b){                //瓶数足够结束循环返回n
                                return n;
                        }else{
                                if(ct%3==0){        //足够三瓶换一瓶       
                                        ct++;
                                }else{
                                       
                                        n++;
                                        ct++;
                                }
                        }
                }
               
        }
作者: chaos1234    时间: 2016-5-24 13:45
一开始还以为是普通逻辑题,后面看评论在知道是编程题...
作者: haizi004    时间: 2016-5-24 13:57
这个题在另外一个贴也看到过




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2