用c# 语言 写一个 递归算法
时间: 2023-05-27 12:01:10 浏览: 162
语言怎么输出“Hello World”?
可以使用printf语句,在双引号内写入“Hello World”,然后在语句的结尾加上分号,如下所示:
printf("Hello World");
当程序运行时,输出将显示为“Hello World”。
相关问题
C#4连通区域填充的递归算法
以下是C#中4连通区域填充的递归算法:
```csharp
using System.Collections.Generic;
public static void Fill4(int x, int y, Color fillColor, Color[,] bmp)
{
int width = bmp.GetLength(0);
int height = bmp.GetLength(1);
Color targetColor = bmp[x, y];
Stack<Tuple<int, int>> pixels = new Stack<Tuple<int, int>>();
pixels.Push(new Tuple<int, int>(x, y));
while (pixels.Count > 0)
{
var a = pixels.Pop();
int x1 = a.Item1;
int y1 = a.Item2;
if (x1 < 0 || x1 >= width || y1 < 0 || y1 >= height)
continue;
if (bmp[x1, y1] != targetColor)
continue;
bmp[x1, y1] = fillColor;
pixels.Push(new Tuple<int, int>(x1 - 1, y1));
pixels.Push(new Tuple<int, int>(x1 + 1, y1));
pixels.Push(new Tuple<int, int>(x1, y1 - 1));
pixels.Push(new Tuple<int, int>(x1, y1 + 1));
}
}
```
其中,x和y是填充的起始点,fillColor是填充的颜色,bmp是要填充的位图。该算法使用了栈来实现递归,遍历了起始点周围的四个点,如果颜色相同则继续遍历,否则跳过。
阅读全文