黑马程序员技术交流社区

标题: 关于28个人买可乐,3个瓶盖换1瓶可乐的问题。。。 [打印本页]

作者: Summer910925    时间: 2015-8-5 17:34
标题: 关于28个人买可乐,3个瓶盖换1瓶可乐的问题。。。
28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?


public class Test {
        public static void main(String[] args) {
               
                Scanner sc = new Scanner(System.in);
               
                System.out.println("请输入人数 :");
               
                int num = sc.nextInt();
               
                int BuyNumber = 0;
               
                if(num <= 3){
                        BuyNumber = num;
                }
               
                else {
                        for(int x = 3 ; x <num ; x++){
                                if(x + x/2 >= num){
                                        if((x%2 == 0)&&(x +x/2 == num)){
                                                BuyNumber = x + 1 ;
                                                break;
                                        }
                                        else {
                                                BuyNumber = x;
                                        }
                                }
                        }
                }
               
                System.out.println(BuyNumber);
        }
}
作者: Summer910925    时间: 2015-8-5 17:36
就是这点儿代码,分析问题得出一个x+x/2 = 28 的初步式子
作者: Summer910925    时间: 2015-8-5 17:40
计算机中,除法运算符/ 自动向下取整,完善了x+x/2 >= num中一种不成立的情况;
判断(x%2 == 0)&&(x +x/2 == num) ,得到的x如果是偶数并且x + x/2正好等于num,只需将x加1就可以了

作者: Wqi    时间: 2015-8-5 17:59
本帖最后由 Wqi 于 2015-8-5 18:01 编辑

总的瓶子数 -买的瓶子数= 买的瓶数/[换一瓶需要的盖子数 -1]
作者: thoris    时间: 2015-8-5 18:09
if(num <= 3){
        BuyNumber = num;

但是通常3个人只要买两瓶就可以了。借一瓶 最后还3个盖子。
作者: Summer910925    时间: 2015-8-5 18:35
thoris 发表于 2015-8-5 18:09
if(num

还带借的?




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