我正在 c# 中练习递归,我有一个有效的解决方案,但它使用了 3 个函数(其中 2 个非常相似)。我正在寻找有关如何改进这一点的提示,或者我是否以正确的方式进行处理。我避免使用 for 循环并希望只使用递归来解决这个问题。
using System;
namespace RecursionPractice
{
class Program
{
static int sumFirstLastRows(int[,] twoDArr)
{
int rowLength = twoDArr.GetLength(1);
int sumRow1 = sumFirstRow(twoDArr, rowLength);
int sumRow2 = sumLastRow(twoDArr, rowLength);
int sumTotal = sumRow1 + sumRow2;
return sumTotal;
}
static int sumFirstRow(int[,] twoDArr, int N)
{
if (N <= 0)
{
//base case
return 0;
}
return sumFirstRow(twoDArr, N - 1) + twoDArr[0, N - 1];
}
static int sumLastRow(int[,] twoDArr, int N)
{
if (N <= 0)
{
//base case
return 0;
}
return sumLastRow(twoDArr, N - 1) + twoDArr[1, N - 1];
}
static void Main(string[] args)
{
int[,] twoD = new int[,] {{ 1, 3, 5 },
{ 2, 4, 6 }};
Console.WriteLine(sumFirstLastRows(twoD));
Console.ReadLine();
}
}
}
不负相思意
慕姐4208626
相关分类