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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风雪再现 中级黑马   /  2013-7-5 18:08  /  2936 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 风雪再现 于 2013-7-5 18:10 编辑

小明的妈妈每天会给他20元零花钱,小明每天花一半存一半,每过7天小明又会把所有存款花掉一半,请编程计算小明需要多少天才能存够100元?
int sum = 0;
            for (int i = 1; ; i++)
            {
                if (sum < 100)
                {
                    if (i % 7 == 0)
                    {
                        sum = sum / 2;
                    }
                    else
                    {
                        sum += 10;
                    }
                }
                else
                {
                    Console.WriteLine("需要{0}天,小明能够存够100",i);
                    break;
                }
            }

不好意思,发重了,网速太慢,以为没有发上去呢

6 个回复

倒序浏览
int j = 0;
            int k = 0;
            for (int i = 0; i < 100; i+=20)
            {

                i = i - 10;
                j++;
                k++;
                if (j == 7)
                {
                    i = i / 2;
                    j = 0;
                }

            }

            Console.WriteLine(k);
            Console.ReadKey();


不知道可是等于13,差距可能有一天吧。
回复 使用道具 举报
有个疑问 每到一个第七天 小明是先收钱呢?还是先花钱呢?
如果 是先收钱的话我是这么写的:

            int i = 0;
            double sum = 0;
            while (true)
            {

                if (sum >= 100)
                {
                    break;
                }
                sum += 10;
                if (i % 7 == 0 && i >= 6)
                {
                    sum /= 2;
                }
                i++;
            }
            Console.WriteLine(i);
            Console.ReadLine();
回复 使用道具 举报
我也来贴一个:
如题: int day = 0 ;
            int monney = 0;
            while (monney < 100)
            {
                for (int i = 1;i<=7;i++)
                {
                    if (monney < 100)
                    {
                        day++;
                        monney += 10;
                    }
     
                }
                if (monney >= 100)
                {
                    break;
                }
                monney = monney / 2;

               
            }
            Console.WriteLine(day);
            Console.ReadKey();
回复 使用道具 举报
那么麻烦做什么 - -   看看这样~{:soso_e120:}
int i = 20;
            int day = 7;
            double sum = 0;
            sum = 100 / (((i / 2 * day) / 2) / 7);
            Console.WriteLine("小明需要{0}天才能存够100元", sum);
            Console.ReadKey();
回复 使用道具 举报
假定小明需要存够的钱数为int money,那么他一个星期最多存80,除去最后那不超过7天的日子,之前他每周最多存35,
那么他至少要乖乖攒35攒int weeks=(money-80-1)/35+1 周,即求大于等于(money-80)/35的最小的整数
在这几周内他攒了weeks*35块钱,那么他还得攒(money-weeks*35)元钱,除去最后一天能攒20,
其中他攒了int days=(money-20-weeks*35-1)/10+1天,即求大于等于(money-20-weeks*35)/10的最小的整数.
最后的天数总和为int i=weeks*7+days+1.

int weeks=(money-80-1)/35+1;
int days=(money-20-weeks*35-1)/10+1
int i=weeks*7+days+1;
Console.WriteLine("需要{0}天,小明能够存够"+money.Tosting(),i);

将money=100代入得到13
回复 使用道具 举报
int sum=20;
                        int day = 0;
                        while (sum <= 100)
                        {
                                if (day == 7)
                                        sum = sum / 2;

                                sum += 10;
                                day++;
                        }
                        Console.WriteLine(day);
                        Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马