当前位置:编程学习 > C#/ASP.NET >>

这样的程序怎么写呢 求高手关注下







我想判断每列间隔跳开的数字组合,例如5 2 4 2 这些数字都被2这个数字间隔开来了,这种情况就是我要的,如果接下去5 2 4 2 5或者5 2 4 2 4 新出现的数字为5或者4,还是接着判断为符合,因为5和4曾经出现在我们判断的4个数字组合里被2间隔开。接着下去的数字若再出现为2也继续判断为符合,因为2还是和上面一样的跳开所需的相同数字,若出现的数字不是2,是其他数字就不是相同数字的间隔了,就不成立了。如此循环一直下去判断。

下面举例说明下

红框里面的3列数字 7 9 10 9 7 和 3 4 5 4 5 和10 5 1 5 1
我需要用前4个间隔跳开的数字来判断第五个数字  
也就是
7 9 10 9来判断 只要出现的是7和10就符合
3 4 5 4 来判断 只要出现的是3和5就符合
10 5 1 5 来判断 只要出现的是10和1就符合

能明白吗 

然后判断好第第五个数字后  再循环的以第2个数字到第5个数字为新的引去判断新的第五个数字(也就是原来的第六个数字这样)。判断好后,再循环以原来的第3个数字到第6个数字去判断新的第五个数字(也就是原来的第七个数字,如此循环一直下去。

再详细举一列来说明
7 9 10 9 这4个数字来判断 如果出现的数字为7或者10就符合条件,结果是7,条件符合,接着下去判断9 10 9 7如果出现的是9则符合,结果出现的是2,条件不符合,接着下去判断10 9 7 2,这4个数字无规律则自动视为无效,接着下去判断9 7 2 6,这4个数字也无规律视为无效,接着下去判断7 2 6 1,这4个数字也无规律视为无效,接着下去判断2 6 1 9,这4个数字也无规律视为无效,接着下去判断6 1 9 9,这4个数字也无规律视为无效,接着下去判断1 9 9 7,这4个数字也无规律视为无效,接着下去判断9 9 7 9,规律出现,如果第五个数字是7或者9则条件符合,结果是2则不符合条件,接着下去判断9 7 9 2,规律符合跳开,如果出现的是9则符合条件,结果是6,条件不符合。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 这个帖子怎么没人回呢。直接上代码吧。
//一列的数据
            int[] arrLine1 = new int[] {4,3,2,1,10,10,8,10,9,4,7,9,10,9,7,9,6,1,9 };
            for (int i = 4; i < arrLine1.Length; i++)
            {
                //规律1:第一个和第三个相等
                if (arrLine1[i - 4] == arrLine1[i - 2])
                {                    
                    //如果第五个数和第一个相等
                    if (arrLine1[i] == arrLine1[i - 4])
                    {
                        //这5个数满足条件,下面这句是把这5个数显示到listBox,你可以改成你想要的
                        //listBox1.Items.Add(string.Format("{0},{1},{2},{3},{4}", arrLine1[i - 4], arrLine1[i - 3], arrLine1[i - 2], arrLine1[i - 1], arrLine1[i]));
                        continue;
                    }

                }
                //规律1:第二个和第四个相等
                if (arrLine1[i - 3] == arrLine1[i - 1])
                {
                    //如果第五个数和第一个相等或者和第三个相等
                    if (arrLine1[i] == arrLine1[i - 4] || arrLine1[i] == arrLine1[i - 2])
                    {
                        //这5个数满足条件
                        //listBox1.Items.Add(string.Format("{0},{1},{2},{3},{4}", arrLine1[i - 4], arrLine1[i - 3], arrLine1[i - 2], arrLine1[i - 1], arrLine1[i]));
                    }
                }
            }
--------------------编程问答-------------------- 描述的好复杂,看了半天,你是不是这个意思:

找出所有满足条件的五位字符序列,其中第2位=第4位,且第5位=第1位或第3位. --------------------编程问答--------------------
引用 3 楼 czarten 的回复:
描述的好复杂,看了半天,你是不是这个意思:

找出所有满足条件的五位字符序列,其中第2位=第4位,且第5位=第1位或第3位.


是这个意思,找出所有的满足条件的数据 --------------------编程问答--------------------
引用 4 楼 Lcindep110 的回复:
Quote: 引用 3 楼 czarten 的回复:

描述的好复杂,看了半天,你是不是这个意思:

找出所有满足条件的五位字符序列,其中第2位=第4位,且第5位=第1位或第3位.


是这个意思,找出所有的满足条件的数据


我看错了,你这个有点歧义:

假设放着7 9 10 9 7 9这样六个数,你是要挑出整串6个数呢,还是要挑出7 9 10 9 7和9 10 9 7 9这样两串数?
如果没有开头那个7,直接9 7 9 10 9这样的串算不算? --------------------编程问答--------------------
引用 5 楼 czarten 的回复:
Quote: 引用 4 楼 Lcindep110 的回复:

Quote: 引用 3 楼 czarten 的回复:

描述的好复杂,看了半天,你是不是这个意思:

找出所有满足条件的五位字符序列,其中第2位=第4位,且第5位=第1位或第3位.


是这个意思,找出所有的满足条件的数据


我看错了,你这个有点歧义:

假设放着7 9 10 9 7 9这样六个数,你是要挑出整串6个数呢,还是要挑出7 9 10 9 7和9 10 9 7 9这样两串数?
如果没有开头那个7,直接9 7 9 10 9这样的串算不算?


7 9 10 9 7 是我要的。(9 10 9 7 9 也是我要的。如果这里是9 10 9 7 4 那就不是我要的了) --------------------编程问答-------------------- 楼上看我2楼的代码。 --------------------编程问答--------------------
引用 7 楼 u011303459 的回复:
楼上看我2楼的代码。


你那代码,可以算出。有效的有几次,无效的有几次吗?都是在哪个位置上出现呢?
可以麻烦你在改进改进吗 --------------------编程问答-------------------- 代码写到这个份上,你还是看不懂吗?
用个变量记录有效次数,满足条件,有效次数加1。
至于位置不就是数组下标吗。

你自己完善吧,如果这都改不出来,你怎么在软件这个行业混啊?
--------------------编程问答-------------------- http://bbs.csdn.net/topics/390509820
100分跪求了 --------------------编程问答--------------------
引用 9 楼 u011303459 的回复:
代码写到这个份上,你还是看不懂吗?
用个变量记录有效次数,满足条件,有效次数加1。
至于位置不就是数组下标吗。

你自己完善吧,如果这都改不出来,你怎么在软件这个行业混啊?


5年前在软件行业混,现在已经脱离了软件行业了。。是帮个朋友写个软件。。都不知道该怎么写了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,