如果一个数组中连续0的个数小于5,则把0变为1
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/09/14 12:42:52
如果一个数组中连续0的个数小于5,则把0变为1
有一个数组,假设为{1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1}
如果连续的0的个数小于5,则把0变成1
最后的结果应该是 {1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1}
有一个数组,假设为{1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1}
如果连续的0的个数小于5,则把0变成1
最后的结果应该是 {1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1}
挺有意思的问题!见程序:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] s = { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1 };
int[] r = ConvertBytes(s);
//Console.Write("{");
//for (int i = 0; i < r.Length; i++)
//{
// Console.Write(r[i].ToString() + ", ");
//}
//Console.Write("}");
}
static int[] ConvertBytes(int[] b)
{
List<ZeroSequence> list = new List<ZeroSequence>();
bool zero = false;
for (int i = 0; i < b.Length; i++)
{
if (b[i] == 0)
{
if (!zero)
{
list.Add(new ZeroSequence() { Index = i, ZeroCount = 1 });
zero = true;
}
else
{
ZeroSequence seq = list.Last();
seq.ZeroCount += 1;
}
}
else
{
zero = false;
}
}
foreach (var z in list)
{
if (z.ZeroCount < 5)
{
for (int i = z.Index, j = 0; j < z.ZeroCount; i++, j++)
{
b[i] = 1;
}
}
}
return b;
}
}
class ZeroSequence
{
public int Index { get; set; }
public int ZeroCount { get; set; }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
int[] s = { 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1,
1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1 };
int[] r = ConvertBytes(s);
//Console.Write("{");
//for (int i = 0; i < r.Length; i++)
//{
// Console.Write(r[i].ToString() + ", ");
//}
//Console.Write("}");
}
static int[] ConvertBytes(int[] b)
{
List<ZeroSequence> list = new List<ZeroSequence>();
bool zero = false;
for (int i = 0; i < b.Length; i++)
{
if (b[i] == 0)
{
if (!zero)
{
list.Add(new ZeroSequence() { Index = i, ZeroCount = 1 });
zero = true;
}
else
{
ZeroSequence seq = list.Last();
seq.ZeroCount += 1;
}
}
else
{
zero = false;
}
}
foreach (var z in list)
{
if (z.ZeroCount < 5)
{
for (int i = z.Index, j = 0; j < z.ZeroCount; i++, j++)
{
b[i] = 1;
}
}
}
return b;
}
}
class ZeroSequence
{
public int Index { get; set; }
public int ZeroCount { get; set; }
}
}
1.有15个数存放在一个数组中,输入一个数要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出无
5个数的平均数是50,如果把其中一个数改为60,则5个数的平均数变为43,所该的数原来是几
求1 java算法 一个数组中m个数(连续的) 需要分成n组 求这n组的所有组合方式
在pascal语言中,如何在一个数组中选取5个数,使其之和最大且小于某数?
VFP 在一个未知个数的数组中,如何计算出数组中的个数
某5个数的平均数为60,如果把其中一个数改为80,则平均数变为70,改动的这个数原来是多少?
输入一个4行4列的二维数组,统计偶数的个数,并输出所有小于5的数.
CAD程序设计作业 从键盘任意输入一个长度为10的实型数组,判断其中大于0、小于0和等于0的元素个数
Matlab中怎么返回一个数组中元素的个数
MATLAB中,已知数组a=[1 2 3 4 5 6 7],怎么统计小于3或者大于5的个数?希望写出程序,并运行成功,
有5个数,它们的平均数是36.8,如果把其中的一个数改成10,这时5个数的平均数变为32,改动的数原来是多少?
[汇编语言]编程实现统计一个数组中奇数的个数