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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟林杰 中级黑马   /  2013-4-16 06:15  /  1705 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        让技术飞,每日一题:
        今天这题也是来自于自考书上的题目,大家一起来试试吧,提高提高逻辑思维能力,
        让你变得更聪明,让你的算法变得更精辟,让你的程序变得更高效。
        题目:
        草地上有一堆苹果,有一只猴子每天吃这堆苹果的一半又一个,5天后刚好吃完这堆苹果。
        问这堆苹果原来共有多少个?猴子每天吃多少个?
(我的答案会在你回答之后公布哦! )

*/
class Test
{
                public static void main(String args[])
                {
                        //首先我设了5个变量,分别是代表每一天未吃前的苹果数量
                        /*
                        apple1初始化为5的两个原因:
                        1、是因为总共有五天,它每天吃苹果至少一个,也就是一定会大于5.
                        2、是因为如果是1的话由于使用的是整数类型,运算第一天的时候就会进入死循环。       
                        */
                        int apple1 = 5,apple2 = 0,apple3 = 0,apple4 = 0,apple5 = 0;
                       
                        while(true)                                //利用一个无限循环让苹果的数量一直增加,直到符合条件位置才停止
                        {

                                apple2 = apple1/2-1;                                                //第一天剩余的苹果
                                apple3 = apple2/2-1;                                                //第二天剩余的苹果
                                apple4 = apple3/2-1;                                                //第三天剩余的苹果
                                apple5 = apple4/2-1;                                                //第四天剩余的苹果
                                if((apple5/2-1)==0)                                                        //判断苹果是否在第五天吃完
                                                break;
                                apple1++;                       
                        }
                        System.out.println("苹果共有:"+apple1+"个!");
                        System.out.println("第一天吃了:"+(apple1-apple2)+"个!");
                        System.out.println("第二天吃了:"+(apple2-apple3)+"个!");
                        System.out.println("第三天吃了:"+(apple3-apple4)+"个!");
                        System.out.println("第四天吃了:"+(apple4-apple5)+"个!");
                        System.out.println("第五天吃了:"+(apple5-0)+"个!");
           }   
}

7 个回复

倒序浏览
应该是用递归的方法处理
回复 使用道具 举报
where is the answer
回复 使用道具 举报
class AppleDemo
{
        public static void main(String[] args)
        {
                int apple=0;
                for(int x=0; x<5; x++)
                {
                        apple = (apple + 1)*2;
                }

                System.out.println(apple);
        }
}
很无聊
回复 使用道具 举报
楼主,怪不得你说会锻炼思维,你连反向思维都不会,哎!!!!!!
回复 使用道具 举报
梁耀今 发表于 2013-4-16 08:18
楼主,怪不得你说会锻炼思维,你连反向思维都不会,哎!!!!!!

:sleepy:是啊,太少练了,惯性!
回复 使用道具 举报
张玉保 发表于 2013-4-16 07:56
where is the answer

:sleepy:这么大个红色字体也没看到啊!
回复 使用道具 举报
chensc 金牌黑马 2013-4-16 08:52:27
8#
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马