判断一串数字中是否含有连续的5个数,0可以代替任何数。如1,3,4,5,0,7,1,5返回true,因为3,4,5,0,7是连续的 ,0,0,0,0,0返回true

msikruby 2009-03-13 10:24:54
高手们看看下面代码是否可以实现?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestFive
{
class Program
{
static void Main(string[] args)
{
string sTest = "13,3,5,12,4,0,7,3,4,5,0,7,0,0,0,0,0,0,45,13,3,0,0,6,0,8,0";

List<int> listFive = new List<int>();

List<string> listSource = sTest.Split(',').ToList();

int n = listSource.Count - 4;

for (int j = 0; j < n; j++)
{
int nStartIndex = 0;

for (int i = 0; i < 5; i++)
{
string sTemp = listSource[nStartIndex];

listFive.Add(Int32.Parse(sTemp));

nStartIndex++;
}

if (IsLink(listFive))
{
Console.WriteLine("Find");

foreach (int i in listFive)
{
Console.WriteLine(i);
}

Console.WriteLine();
}

listSource.RemoveAt(0);

listFive = new List<int>();
}

Console.ReadLine();
}

static bool IsLink(List<int> list)
{
List<int> listTemp = new List<int>();

foreach (int nTemp in list)
{
listTemp.Add(nTemp);
}

int nBegin = listTemp[0];

for (int i = 1; i < listTemp.Count; i++)
{
if (!(nBegin == 0 || listTemp[i] == 0 || (nBegin == listTemp[i] - i))) return false;
}
if (listTemp.Count == 1) return true;

listTemp.RemoveAt(0);

return IsLink(listTemp);
}
}
}
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
msikruby 2009-03-17
  • 打赏
  • 举报
回复
楼上的好像有问题,比如0,0,1,0,1怎么办?
南哥1207 2009-03-13
  • 打赏
  • 举报
回复
static bool IsLink(List<int> list)
{
int temp = 0;
for (int nI = 0; nI < list.Count; nI++)
{
if (temp == 0)
{
if (list[nI] != 0)
{
temp = list[nI];
temp++;
}
continue;
}

if (temp == list[nI] || list[nI] == 0)
{
temp++;
}
else
{
return false;
}
}
return true;

}
msikruby 2009-03-13
  • 打赏
  • 举报
回复
我测了下,好像没有问题,希望高手给鉴定下算法是否正确!
jinjazz 2009-03-13
  • 打赏
  • 举报
回复
你测试一下啊
内容概要:本研究围绕水面无人艇(USVs)集群协同作战的学建模与策略优化展开,利用Matlab进行算法实现与仿真验证。研究建立了USVs集群在复杂海洋环境下的运动学与动力学模型,融合编队控制、路径规划、任务分配及避障等关键技术,构建了完整的协同作战框架。通过引入改进的智能优化算法(如改进秃鹰算法),对集群的协同策略进行优化,旨在提升多艇系统的任务执行效率、协同精度与环境适应性,确保其在目标搜索、区域覆盖、协同攻击等作战场景实现高效、稳定与鲁棒的群体智能行为。研究涵盖了从底层动力学建模到顶层协同决策的全过程,为无人艇集群的实际应用提供了理论依据和技术方案。; 适合人群:具备一定编程基础和控制理论知识,从事无人系统、智能优化、自动化或军事仿真等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究多智能体系统(MAS)的协同控制与优化策略;②开发基于Matlab的无人艇集群仿真平台;③优化复杂环境下多机器人系统的任务分配与路径规划算法;④探索智能优化算法在军事仿真和群体智能的应用。; 阅读建议:此资源以Matlab代码实现为核心,紧密结合理论模型与工程实践。建议读者在学习过程,不仅要理解学模型的推导与算法的优化逻辑,更要动手运行和调试所提供的代码,通过可视化仿真结果来加深对集群协同行为的理解,并尝试修改参或算法结构以探究不同策略的效果,从而达到理论与实践相结合的最佳学习效果。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧