c# 递归算法

c# 递归算法c#题目如下:要求输出:1,2,3,5,8,13,21,34,55,89写法一:publicclassMyClass{ publicstaticvoidMain() { int[]cSu

大家好,又见面了,我是你们的朋友全栈君。

c#题目如下:

要求输出:1,2,3,5,8,13,21,34,55,89

写法一:

public class MyClass

{

public static void Main()

{

int[] cSum = new int[10];

        string sSum=””;

        for (int i = 0; i < cSum.Length; i++)

        {

if(i==0)

{

cSum[i]=1;

sSum=””+cSum[i];

}

else if(i==1)

{

cSum[i]=cSum[i-1]+cSum[i-1];

sSum=sSum+’,’+cSum[i];

}

else

{

cSum[i]=cSum[i-1]+cSum[i-2];

sSum=sSum+’,’+cSum[i];

}

}

//输出结果1,2,3,5,8,13,21,34,55,89,普通写法

Console.WriteLine(sSum);

Console.ReadKey();

}

}

Snippet Compliler调试通过

这样写虽然能实现,但是感觉不大好,重构,用递归写法

写法二:

public class MyClass

{

public static void Main()

{

int[] cSum= new int[10];

string sSum=””;

for(int j=0;j<cSum.Length;j++)

{

cSum[j]= process(j);

if(sSum!=””)

{

sSum=sSum+’,’;

}

sSum+=cSum[j];

}

//输出结果1,2,3,5,8,13,21,34,55,89,递归写法

Console.WriteLine(sSum);

   Console.ReadKey();    

}

public static int process(int i)

{

int s;

if(i==0||i==1)

{

s=i+1;

}

else

{

s=process(i-1)+process(i-2);

}

return s;

}

}

通过递归算法重构了写法一

下面留个题目,要求输出:1,1,2,3,5,8,13,21,34,55

写法三:

public class MyClass

{

public static void Main()

{

int[] cSum = new int[10];

            string sSum=””;

            for (int i = 0; i < cSum.Length; i++)

            {

if(i==0||i==1)

{

cSum[i]=1+cSum[i];

if(sSum!=””)

{

sSum+=”,”;

}

sSum+=cSum[i];

}

else

{

cSum[i]=cSum[i-1]+cSum[i-2];

sSum=sSum+’,’+cSum[i];

}

}

//输出结果1,1,2,3,5,8,13,21,34,55

Console.WriteLine(sSum);

Console.ReadKey();

}

}

请把写法三改成递归写法?呵呵,可以试一下!

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155651.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最全的android图片加密

    最全的android图片加密在android开发过程中有些时候一些重要的图片,我们不希望用户通过文件管理直接能查看,我们该怎么办呢,当然你可以把图片放在android的内部存储中,data/data/下,但毕竟androidroot用户一大堆,还是解决不了问题。那么我们就需要对图片进行加密,当然加密的方法有很多种,下面给大家推荐我常用的2中方法,基本上可以解决大部分问题。   1、国际标准的AES加密,通过加密流存储

    2022年6月21日
    40
  • js二维码生成

    详细介绍可以查看API网站:http://code.ciaoca.com/javascript/qrcode/ (前端开发仓库)一、引入js文件&amp;lt;!– 第一步:引进js文件 –&amp;gt; &amp;lt;script type=”text/javascript” src=”js/jquery.min.js”&amp;gt; \ &amp;lt;script type=”text/java…

    2021年11月30日
    45
  • pycharm2021.11永久激活【中文破解版】

    (pycharm2021.11永久激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1M3Q9SD5XW-eyJsaWN…

    2022年3月28日
    74
  • VS2010 编译 SpiderMonkey 1.8.5 静态库版本[通俗易懂]

    VS2010 编译 SpiderMonkey 1.8.5 静态库版本[通俗易懂]大家好,前段时间看到VC驿站上面会员发布了一篇文章《Windows系统编译制作SpiderMonkey最新版mozjs-31.2.0版本》,地址为:http://www.cctry.com/thread-250698-1-1.html过程写的很详细,使用的也是目前来说SpiderMonkey的最新版本31.2.0,不过我之前用的一直是1.8.5版本,用老的版本编译出来的SpiderMonkey

    2022年10月16日
    0
  • xsync文件「建议收藏」

    xsync文件「建议收藏」1、写好xsync.sh脚本#!/bin/bash#1.判断参数个数if[$#-lt1]thenechoNotEnoughArguement!exit;fi#2.遍历集群所有机器forhostinhadoop101hadoop102hadoop103doecho====================$host====================#3.遍历所有目录,挨个发送forfilein$@do

    2022年5月5日
    44
  • easyui textbox 绑定oninput事件

    easyui textbox 绑定oninput事件需求:想要在一个input框输入的同时,另一个输入框的值实时变化!但是easyui只提供了onchange事件,只有当第一个输入框的光标移开时才会触发事件,不能达到实时变化的效果。于是开始各种百度,寻求easyuitextbox绑定事件的方法,但是无奈各种尝试都以失败告终!但是机智的我突然灵光一闪,心生一计,瞬间药到病除,问题迎刃而解!闲言少叙,方案走你!方案:通过easyui

    2022年5月20日
    140

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号