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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MAC安装JDK及环境变量配置「建议收藏」

    MAC安装JDK及环境变量配置「建议收藏」访问Oracle官网http://www.oracle.com,浏览到首页的底部菜单,然后按下图提示操作:  2.点击“JDKDOWNLOAD”按钮:  3.选择“AcceptLisenceAgreement”同意协议:  4.点击MacOSXx64后面的下载链接: 

    2022年7月17日
    15
  • 如何将ofd文件转成pdf格式?

    如何将ofd文件转成pdf格式?自电子发票改为ofd格式文件后,很多通知、办公文档也逐步开始用ofd替代,但毕竟使用还不算普及,我们也都更习惯PDF格式。那么如何将OFD文件转成PDF呢?对于不熟悉和不知如何打开OFD文件的人来说,最简单的方法当然是直接转成PDF后再打开查看或修改,这里我们需要用到专门的转换工具。不需要安装软件,只需要搜索speedpdf打开这个在线工具页面就能转换,首页就能找到我们需要的OFD转PDF功能。(除此之外还有XPS和CAD这些很难找到转换工具的格式转换哦)转换过程也非常简单,添加需要转换的文档后,点击

    2022年5月27日
    41
  • 利用STM32F103精确控制步进电机

    利用STM32F103精确控制步进电机**利用STM32F103控制步进电机精确角度转动**欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,…

    2022年6月1日
    38
  • 关于智慧小区平台发展的看法和建议_智慧社区的现状及发展趋势

    关于智慧小区平台发展的看法和建议_智慧社区的现状及发展趋势关于智慧小区平台发展的看法本系列文章由ex_net(张建波)编写,转载请注明出处。http://blog.csdn.net/ex_net/article/details/9003098作者:张建波邮箱:281451020@qq.com电话:13577062679欢迎来电交流!前言平台概念:安保平台、社区服务平台中国未来城市发展方向:1、清洁能源;2、资源的循…

    2022年8月31日
    4
  • Spring中的设计模式[通俗易懂]

    Spring中的设计模式[通俗易懂]Spring中的设计模式

    2022年4月23日
    36
  • Java语言实现hello world代码[通俗易懂]

    Java语言实现hello world代码[通俗易懂]参考https://blog.csdn.net/yilovexing/article/details/53256713 24种编程语言的HelloWorld程序  Java文档注释Java支持三种注释方式。前两种分别是 // 和 /**/,第三种被称作说明注释,它以 /** 开始,以 */结束。说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工…

    2022年5月8日
    52

发表回复

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

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