递归算出两个数字之间所有数字之和

 以 1-100 为例:

代码:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace AspNetTest.Common
{
    /// <summary>
    /// AddFrom1To100 的摘要说明。
    /// </summary>
    public class AddFrom1To100 : System.Web.UI.Page
    {
        private const int from = 1;
        private const int to = 100;
        int sum = 0;
        private void Page_Load(object sender, System.EventArgs e)
        {
            f1(from, to);
            Response.Write(sum.ToString() + "<br>");
            sum = 0;
            f2(to, from);
            Response.Write(sum.ToString() + "<br>");
            sum = f3(from, to);
            Response.Write(sum.ToString() + "<br>");
            sum = f4(to, from);
            Response.Write(sum.ToString() + "<br>");
            sum = 0;
            f5(from, to);
            Response.Write(sum.ToString() + "<br>");
            sum = 0;
            f6(to, from);
            Response.Write(sum.ToString() + "<br>");
            // 在此处放置用户代码以初始化页面
        }
        private int f1(int _from, int _to)
        {
            int n = 0;
            if (_from == _to)
            {
                n = _to;
            }
            else
            {
                n = f1(_from + 1, _to) - 1;
            }
            sum += n;
            return n;
        }
        private int f2(int _to, int _from)
        {
            int n = 0;
            if (_to == _from)
            {
                n = _from;
            }
            else
            {
                n = f2(_to - 1, _from) + 1;
            }
            sum += n;
            return n;
        }

        private int f3(int _from, int _to)
        {
            if (_from == _to)
            {
                return _to;
            }
            return (_from + f3(_from + 1, _to));
        }

        private int f4(int _to, int _from)
        {
            if (_to == _from)
            {
                return _from;
            }
            return (_to + f4(_to - 1, _from));
        }
        private void f5(int _from, int _to)
        {
            if (_from <= _to)
            {
                sum += _from;
                f5(_from + 1, _to);
            }
        }
        private void f6(int _to, int _from)
        {
            if (_to >= _from)
            {
                sum += _to;
                f6(_to - 1, _from);
            }
        }
        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }

        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值