黑马程序员技术交流社区

标题: 28人买可乐喝,3个瓶盖换一瓶可乐,要买多少瓶可乐 假如是50人,买多少瓶可乐? [打印本页]

作者: y6814365    时间: 2016-8-4 21:24
标题: 28人买可乐喝,3个瓶盖换一瓶可乐,要买多少瓶可乐 假如是50人,买多少瓶可乐?
package com.itheima;

import java.util.Scanner;

/*
* 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?
* 假如是50人,又需要买多少瓶可乐?(需写出分析思路)

* */
/*
一个人 1瓶    1- 1/3
二个人 2瓶   2-2/3
三个人 3瓶   3-3/3
四个人 3瓶 + 1瓶     3+1  4-4/3
五个人 4瓶 +1瓶       4+1   5-5/3
六个人  5瓶 + 1瓶     5+1  (6-6/3) +1
七个人  5瓶 + 2瓶     5+2  7-7/3
八个人  6瓶 + 2瓶     6+2   8-8/3
九个人7瓶  + 2瓶      6+3   9-9/3 +1
十个人7瓶   + 3瓶     7+3   7-10/3
.....
分析得出:购买的人数减去 瓶盖兑换的 就是需要购买的瓶数,但是当人数为3的整数倍时,需要先买,只有凑够3n个瓶盖才可以兑换
*/

public class Test9 {
        public static void main(String[] args) {
        /*       
         //定义一个键盘录入人数
          Scanner sc = new Scanner(System.in);
                while (true) {
                        System.out.println("请输入人数:");
                        int nextInt = sc.nextInt();
                        System.out.println(nextInt + "个人,你只需要买:  " + method(nextInt) + "瓶可乐");

                }*/
                // 调用 method方法 并打印
                System.out.println("28人 ,你只需要买:  " + method(28) + "瓶可乐");
                System.out.println("50人 ,你只需要买:  " + method(50) + "瓶可乐");
        }

        public static int method(int i) {
                //当人数是3的整数倍时, 是先购买,而不是兑换.所以就需要+1
                //比如 人数为6人时,你就需要购买5瓶可乐,而不是4瓶
                if(i%3==0){
                        return (i - i/3) + 1;
                }
                return i - i / 3;
        }
}
作者: y6814365    时间: 2016-8-4 21:25
28人19瓶,50人 34瓶




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