我的数组里有一组数 
取出第0位的值加上35 然后再次遍历这个数组 如果有 就再次加上70遍历这个数组 然后继续遍历 再加105遍历 再加 140遍历 再加 175遍历。 
如果这5次都存在与数组里 那么就返回个真值 
如果为假,那么就从数组的第一位开始 继续照上面的+35的方法继续遍历数组 
等到数组第最后一位都遍历完了后 还是没有的话 就返回一个FALSE。 如何去实现?例如说xx[0]的值20  那么循环xx这个数组寻找20+35 也就是55的这个数 是否在数组里存在。
如果存在 就继续查找20+35X2也就是70 在不在数组里。。
存在就继续查询  一直到20+35X5   如果5个都存在  那么就返回TRUE;
只要其中一个不存在的话  就跳出这个循环 。。
然后 继续从XX[1]开始  照以上的方式循环数组。满足就返回TRUE,不满足就返回FALSE;
如何实现?我自己写的头都晕了 下面是我的代码  肯定是错的       private bool bxwinn()
        {
            bool win = false;
            int x = 1;
            for (int i = 0; i < 10; i++)
            {
                MessageBox.Show(bzbx[i].ToString());
               
                    for (int k = 35; k <= 175; k = k + 35)
                    {
                        for (int j = 0; j < 95; j++)
                        {                            if ((bzbx[i] + k) == bzbx[j])
                            {
                                x++;
                                break;
                                
                            }                        }
                    }
                
                if (x == 5)
                { 
                   
                     win = true;
                     break;
                           
                }
            }
            return win;
        }

解决方案 »

  1.   

    for (int i = 0; i < 10; i++) 
      这个是i<100...
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Collections;namespace Test
    {
        class Program 
        {
           
            static void Main()
            {            int[] bzbx = { 20,30,55,65, 90,100, 125,135, 160,170,194,205};
                int m = 5;
                int p = 35;
                int n;
                int t;
                bool flag = false;
                Array.Sort<int>(bzbx);//先排序            for (int i = 0; i < bzbx.Length-5; i++)
                {
                    t = bzbx[i];
                    n = 1;
                    for (int j = i + 1; j < bzbx.Length&&n<6; j++)
                    {
                        if (bzbx[j] == bzbx[i] + p * n)
                        {
                            n++;
                        }
                    }
                    if (n == m + 1)
                    {
                        flag = true;
                        Console.WriteLine("{0}满足,return true!",t);
                    }
                }
                if (!flag) Console.WriteLine("不满足,return false!");        }    }}
      

  3.   

    using System;namespace 组合数
    {
        class Test
        {
            static int[] arr={ 10,555,45,80,115,150,185,222};
            static void Main()
            {
                
                
                Console.WriteLine(Find());
                Console.Read();
            }        private static bool Find()
            {
                for(int i=0;i<arr.Length;i++)
                {
                    for (int j = 35; j <= 175; j += 35)
                    {
                        if (!Serch(arr[0] + j))
                            return false;
                    }
                }
                return true;
            }
            private static bool Serch(int i)
            {
                foreach (int j in arr)
                {
                    if (i == j)
                        return true;
                }
                return false;
            }
        }
    }
    不知道你是不是这个意思。。试了一下通过
      

  4.   

    写成函数,就是这样
    using System;
    using System.Collections.Generic;
    using System.Collections;namespace Test
    {
        class Program 
        {
            static void Main()
            {
                int[] bzbx = { 20,30,55,65, 90,100, 125,135, 160,170,194,205};
                int m = 5;
                int p = 35;
                
                Array.Sort<int>(bzbx);//先排序
                  bool flag = IsValidCondition(bzbx, p, m);
                       }
            static bool IsValidCondition(int[] bzbx, int p, int m)
            {
                int n;
                int t;
                for (int i = 0; i < bzbx.Length - 5; i++)
                {
                    t = bzbx[i];
                    n = 1;
                    for (int j = i + 1; j < bzbx.Length && n < 6; j++)
                    {
                        if (bzbx[j] == bzbx[i] + p * n)
                        {
                            n++;
                        }
                    }
                    if (n == m + 1)
                    {
                        Console.WriteLine("{0}满足!", t);
                        return true;
                    }
                }
                 Console.WriteLine("不满足!");
                 return false;
            }
        }}结果:
    30满足!
    请按任意键继续. . .
      

  5.   

    - - ...
    这样还是不对
    我照5楼的方法改了一下。。
    还是没达到我想要的那个效果
    其实简单的说  就是取出那个20  然后遍历寻找数组里 有没有20+35的这个值、、
    有就再次循环寻找20+70.有就循环20+105  一直到20+175如果还有的话 就给TRUE如果中间有一个没的话  就直接给FALSE
    4楼的谢谢了  我不是想表达的那个意思。。
      

  6.   

    我这个取出10以后按你的意思也是通过的。。中间有一个直接就false了。。