解决方案 »

  1.   


    using System;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(getValue("1-2+3-4+5-6+7-8+9"));
                Console.Read();
            }        static int getValue(string p)
            {
                var index = p.LastIndexOfAny(new[] {'-', '+'});
                if (index == -1)
                {
                    return int.Parse(p);
                }            return getValue(p.Substring(0, index)) + int.Parse(p.Substring(index));
            }
        }
    }
      

  2.   

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("The value is {0}", Calc(9));
            }        static int Calc(int val)
            {
                if (val == 1) return 1;
                return Calc(val - 1) + val * ((val & 1) * 2 - 1);
            }
        }
    }
      

  3.   

    真要一个一个加减吗?
    1-2=-1
    3-4=-1
    5-6= -1


    n-(n-1)=-1;
    //以上n 为奇数
    //偶数自己去想一下
    剩下的应该会了吧
      

  4.   

    Quote: 引用 4 楼 hdt 的回复:

    真要一个一个加减吗?
    1-2=-1
    3-4=-1
    5-6= -1


    n-(n-1)=-1;
    //以上n 为奇数
    //偶数自己去想一下
    剩下的应该会了吧
    [/q看不懂什么意思,求完整代码,控制台输出
      

  5.   


            ...
            Console.WriteLine("The value is {0}", TailRecursionSum(9));
            ...        static int TailRecursionSum(int val, int current=1, int sign=1, int sum=0)
            {
                if (current > val)
                    return sum;
                return TailRecursionSum(val, current + 1, -sign, sum + current * sign);
            }