码迷,mamicode.com
首页 > Windows程序 > 详细

C#经典面试题——递归运算

时间:2018-10-24 11:56:53      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:param   操作系统   系统   int   wing   今天   get   private   text   

今天开始写递归,然而始终不得甚解。借鉴别人的理解:假设我们现在都不知道什么是递归,我们自然想到打开浏览器,输入到谷歌的网页,我们点击搜索递归,然后我们在为维基百科中了解到了递归的基本定义,在了解到了递归实际上是和栈有关的时候,你又蒙圈了,什么是栈呢?数据结构没学清楚,此时的你只能又打开谷歌,搜索什么是栈.接下来你依次了解了内存/操作系统.在你基本了解好知识之后,你通过操作系统了解了内存,通过内存了解了栈,通过栈了解了什么是递归这下你恍然大悟!原来这就是递归啊!

 

C#代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Arithmetic
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void btn_Get_Click(object sender, EventArgs e)
        {
            int P_int_temp;//定义整型变量
            if (int.TryParse(txt_value.Text, out P_int_temp))//为变量赋值(此方法的意思是把内部的txt_value.Text转换为int32位的数据,如果转换成功,则返回一个1)
            {
                lb_result.Text = //输出计算结果
                    "计算结果为:" + Get(P_int_temp).ToString();
            }
            else
            {
                MessageBox.Show(//提示输入正确数值
                    "请输入正确的数值!","提示!");
            }
        }

        /// <summary>
        /// 递归算法
        /// </summary>
        /// <param name="i">参与计算的数值</param>
        /// <returns>计算结果</returns>
        int Get(int i)
        {
            if (i <= 0)                            //判断数值是否小于0
                return 0;                        //返回数值0
            else if (i >= 0 && i <= 2)            //判断位数是否大于等于0并且小于等于2
                return 1;                        //返回数值1
            else                                //如果不满足上述条件执行下面语句
                return Get(i - 1) + Get(i - 2);    //返回指定位数前两位数的和
        }


    }
}

经过第二次理解后,此处的递归是求规律为:1,1,2,3,5,8,12......的第N个数。因此可以先写出N,然后利用递归,从N一直到0,求出结果,然后再反推出N是多少。

C#经典面试题——递归运算

标签:param   操作系统   系统   int   wing   今天   get   private   text   

原文地址:https://www.cnblogs.com/yanguoliumao/p/9842270.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!