A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wei19910428 中级黑马   /  2016-5-23 23:37  /  321 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?

5 个回复

倒序浏览
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:43 编辑

新手 不会玩 发错格式了
回复 使用道具 举报
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++;
                                }
                        }
                }
               
        }
回复 使用道具 举报
一开始还以为是普通逻辑题,后面看评论在知道是编程题...
回复 使用道具 举报
这个题在另外一个贴也看到过
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马