一个百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该项计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,…,你每天给我的钱是前一天的两倍,直到满一个月(30 天),百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算如下问题:1、这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。2、从第几天开始,百万富翁开始每天需要付出比收入更多的钱?3、从第几天开始,百万富翁在这项计划中开始总收入少于总支出?
我需要核心代码,刚开始学这个,好像是用VS

解决方案 »

  1.   

    和vs没有任何关系,当然我们得问你的最高学历,如果是高中学历,我们直接上等差数列通项公式及求和公式,等比数列通项公式及求和公式如果是初中学历,我们只好说,写个循环。x=10000;
    y=1
    x+=x
    y+=y*2至于那个界面其实无所谓,你用html摆个表单都行。
      

  2.   

    每天付出
    富翁:0.01*2^(n-1)
    陌生人:100000
    累计付出
    富翁:0.01*2^n-0.01
    陌生人:100000*n自己列不等式解下吧……
      

  3.   


    class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入陌生人每天给富翁的钱:");
                int StrangerMoney = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("请输入富翁每天给陌生人的钱:(注意请统一单位为分)");
                int RichmanMoney = Convert.ToInt32(Console.ReadLine());
                //获取30天陌生人钱
                int CountGetStranger = CaculateMoney(StrangerMoney, 30);
                //获取30天富翁获得的钱,注意!这里是1000万分钱,我们将单位统一!
                int CountGetRichman = RichmanMoney * 30;
                Console.WriteLine("30天之后:");
                Console.WriteLine("陌生人获得钱:{0}", CountGetStranger);
                Console.WriteLine("富翁获得钱:{0}", CountGetRichman);
                Console.ReadLine();
                //Console.WriteLine("30天之后:");
            }
            public static int CaculateMoney(int money,int days)
            {
                //记住因为规则是2^(n-1)来匹配,比如第一天,陌生人得到2^(1-1)=1的钱,所以30天最多只有29次方
                days--;
                if (days != 0)
                {
                    money = money * 2;
                    return CaculateMoney(money, days);
                }
                else
                {
                    return money;
                }
            }
        }
      

  4.   

    算了,最后一道题还是你自己完成吧,自己练是最好的。class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("请输入陌生人每天给富翁的钱:");
                int StrangerMoney = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("请输入富翁每天给陌生人的钱:(注意请统一单位为分)");
                int RichmanMoney = Convert.ToInt32(Console.ReadLine());
                //获取30天陌生人钱
                int CountGetStranger = CaculateMoney(StrangerMoney, 30);
                //获取30天富翁获得的钱,注意!这里是1000万分钱,我们将单位统一!
                int CountGetRichman = RichmanMoney * 30;
                Console.WriteLine("--------------------------------------------------------");
                Console.WriteLine("30天之后:");
                Console.WriteLine("陌生人获得钱:{0}", CountGetStranger);
                Console.WriteLine("富翁获得钱:{0}", CountGetRichman);
                Console.WriteLine("--------------------------------------------------------");
                int TheDay = JudgeMoneyGet(StrangerMoney, RichmanMoney,1);
                Console.WriteLine("从第{0}天开始,百万富翁开始每天需要付出比收入更多的钱:", TheDay);
                Console.ReadLine();
            }
            public static int CaculateMoney(int money,int days)
            {
                //记住因为规则是2^(n-1)来匹配,比如第一天,陌生人得到2^(1-1)=1的钱,所以30天最多只有29次方
                days--;
                if (days != 0)
                {
                    money = money * 2;
                    return CaculateMoney(money, days);
                }
                else
                {
                    return money;
                }
            }
            public static int JudgeMoneyGet(int StrangerMoney, int RichmanMoney,int FirstDay)
            {
                while (StrangerMoney < RichmanMoney)
                {
                    StrangerMoney *= 2;
                    FirstDay++;
                }
                Console.WriteLine("第{0}天富翁每天支出{1}", FirstDay, StrangerMoney);
                return FirstDay;
            }
        }
    PS:这是控制台的,你用的winform其实99%都是如此