private int PageRead(int day)
{
   if(day <= 0)
    return 0;
  else if(day == 1)
     return 30;
  else if(day > 1)
    PageRead(day-1) + 15;
}

解决方案 »

  1.   

    需要递归?
    这个用个for循环就做了吧
    需要定义2个变量,一个存总数量,一个存上一天的数量
    int all=0;
    int pre=30
    for(int i=0;i<4;i++)
    {
    all+=pre;
    pre+=15;
    }
      

  2.   

     
     protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(GetPageByDay(4));
        }
    private int GetPageByDay(int days)
        {        var pageCount = 0;
            for (int i = 1; i <= days; i++)
            {
                pageCount += PageRead(i);
            }        return pageCount;
        }
        private int PageRead(int day)
        {
            if (day <= 0)
                return 0;
            else if (day == 1)
                return 30;
            else
                return PageRead(day - 1) + 15;
        }
      

  3.   

    我在想就是 可不可以把我要  求和的数据全部ADD数组里面,
    然后统一求和。
      

  4.   


    int[] pages=new int[]{15,15,15,15}
    int all=0;
    int pre=30
    for(int i=0;i<4;i++)
    {
    all+=pre;
    pre+=pages[i];
    }
      

  5.   

    没人说不可以,不过实在是没有那个必要.
    因为题目中根本没有求每一天到底看了多少,你保存那么多中间结果有什么用啊,
    浪费系统资源.
    程序当然是根据需要,越简洁越好,而不要有多余的资源请求.没人说不可以,不过实在是没有那个必要.
    因为题目中根本没有求每一天到底看了多少,你保存那么多中间结果有什么用啊,
    浪费系统资源.
    程序当然是根据需要,越简洁越好,而不要有多余的资源请求.
    这样:  
     int  t  =30;
     int  j = 0;
     for(int i = 0; i < 4 ;i++)
    {
         j += t;
    }
    循环4次  统一加到一个数组里面,然后求和。
      

  6.   

        protected void Page_Load(object sender, EventArgs e)
        {
            var vccc = Get(4);
        }    private int Get(int days, int daycount = 30, int count = 30)
        {
            if (days == 1)
                return count;
            else
            {
                daycount += 15;
                count += daycount;
                return Get(--days, daycount, count);
            }
        }
    应该是这样,第一天30  第二天是30+45 第三天是30+45+60
      

  7.   

    daycount 是记录每天看多少页,比如默认是30页起,也就是第一天能看30。。之后每一天就在30的基础上+15。而count则是记录一共看了多少。。我这种貌似叫尾递归吧。。caozy之前还讨论过尾递归还是尾递归
      

  8.   

     static void Main(string[] args)
            {
                int inputNum = int.Parse(Console.ReadLine());            int total=0;
                for (int i = 0; i < inputNum; i++)
                {
                    total += func(inputNum - i);
                }            Console.WriteLine(total);
                Console.ReadLine();
            }
            
            static int func(int n)
            {
                if (n == 1) return 30;
                return func(n - 1) + 15;
            }  拷过去,直接运行试下
      

  9.   

    int  sum=30*d+15*(d-1)+15*(d-1);每天都有一个30页基数     然后每天+15要减一天  。基数也是一样
      

  10.   

    Public void Test (int day){
    List<int> list=new List<int>{30};
    if(day>1){
    for(int i=1;i<day;i++){
    list.add(list..LastOrDefault()+15);
    }
    //然后 求和就行
    }
    }
      

  11.   

    等差数列只是特例吧,如果每天多看的数量不是常数,而是存放在一个数组中的呢?对的, 我现在就是这个想法, 如果是方在数组中呢。?某些地方该用特例就用特例 ,比如让你计算1+2+3+4+....+n 可能很多人觉得太简单了不就是个for循环就完了?但为什么不用数学公式呢 n*(n-1)/2???