学习。net

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                label1.Text = "";
                using (FileStream filestream =File.OpenRead(openFileDialog1.FileName) )
                {
                    using (StreamReader streamreader = new StreamReader(filestream))
                    {
                        string line = null;
                        string[] red=new string[6];
                        int[] redCircle = new int[6];
                        StreamWriter streamWriter = new StreamWriter(@"c:/newtxt.txt");
                        while ((line = streamreader.ReadLine()) != null)
                        {                          
                            red =line.Split(' ');
                           for(int i=0;i<red.Length;i++)
                            {
                              redCircle[i] = Convert.ToInt32(red[i]);
                            }
                            if  (ZhongDianHao(redCircle) == true)
                            {
                                label1.Text += line + " /n";
                                streamWriter.WriteLine(line);
                            }


                           //if (CommonSum3(redCircle) > 0)
                           //{
                           //    label1.Text += line + " [" + Convert.ToString(CommonSum3(redCircle)) + "] /n";
                           //    streamWriter.WriteLine(line);
                           //}

                           //if ((CommonSum3(redCircle) > 0) && (ZhongDianHao(redCircle) == true))
                           //{
                           //    label1.Text += line + " [" + Convert.ToString(CommonSum3(redCircle)) + "] /n";
                           //    streamWriter.WriteLine(line);
                           //}

                           //if (ZhongDianHaoDouble(redCircle) == true)
                           //{
                           //    label1.Text += line + " /n";
                           //    streamWriter.WriteLine(line);
                           //}

                           //if (DoubleCommonSum(redCircle) == true)
                           //{
                           //    label1.Text += line + " /n";
                           //    streamWriter.WriteLine(line);
                           //}

                        }
                        streamWriter.Dispose();
                    }


                }

            }
        }
        static public bool DoubleCommonSum(int[] baseRed){
            int sum=0;//临时存储号码和值
            int sum2 = 0;//
            int times = 0;//计算出现的次数
            int length; //数组的长度
            length = baseRed.Length;
            for (int j = length - 1; j > 2; j--)
            {
                for (int i = 0; i < j-2; i++)
                {
                    if (i < j - 2)
                    {
                        sum = baseRed[i] + baseRed[j];

                        for (int index = i + 1; index < j; index++)
                        {
                            sum2 = baseRed[i + 1] + baseRed[index + 1];
                            if (sum == sum2) { times++; continue; }

                        }

                    }
                }
            }
            if(times>1) return true;
            return false;
        }
        static public int CommonSum3(int[] baseRed)
        {
            int sum = 0;//临时存储号码和值
            int sum2 = 0;//
            int length; //数组的长度
            length = baseRed.Length;
            for (int j = length - 1; j > 2; j--)
            {
                for (int i = 0; i < j - 2; i++)
                {
                    if (i < j - 2)
                    {
                        sum = baseRed[i] + baseRed[j];

                        for (int index = i + 1; index < j; index++)
                        {
                            sum2 = baseRed[i + 1] + baseRed[index + 1];
                            if (sum == sum2) return sum;

                        }

                    }
                }
            }
            return 0;
        }
        static public bool ZhongDianHao(int[] red)
        {
            int sum = 0;
            int length;
            length = red.Length;
            //检查所有红球的;
            for (int j = length - 1; j > 1; j--)
            {
                for (int i = 0; i < j-1; i++)
                {
                    if (j >= i + 2) //必须保证有三个红球才能进行比较
                    {
                        sum = red[i] + red[j];
                        if (sum % 2 == 0)
                        {
                            int index = (i + j) / 2; // 2;取中间值的index
                            if (sum == red[index] * 2) return true;
                            else if (sum > red[index] * 2)
                            {
                                index = index + 1;
                                if (index < j)
                                {
                                    if (sum == red[index] * 2) return true;
                                    if (sum > red[index] * 2)
                                    {
                                        index = index + 1;
                                        if (index < j)
                                        {
                                            if (sum == red[index] * 2) return true;

                                        }

                                    }
                                }
                            }
                            else
                            {
                                index = index - 1;
                                if (index > i) //必须大于首号的index序号是个动态值
                                {
                                    if (sum == red[index] * 2) return true;
                                    if (sum < red[index] * 2)
                                    {
                                        index = index - 1;
                                        if (index > i) //必须大于首号的index序号是个动态值
                                        {
                                            if (sum == red[index] * 2) return true;
                                        }

                                    }

                                }

                            }
                        }
                    }
                }
            }
            return false;
        }
        static public bool ZhongDianHaoDouble(int[] red)
        {
            int sum = 0;
            int times = 0;//初始化次数
            int length;
            length = red.Length;
            //检查所有红球的;
            for (int j = length - 1; j > 1; j--)
            {
                for (int i = 0; i < j-1; i++)
                {
                    if (j >= i + 2) //必须保证有三个红球才能进行比较
                  
                    {
                        sum = red[i] + red[j];
                        if (sum % 2 == 0)
                        {
                            int index = (i + j) / 2; // 2;取中间值的index
                            if (sum == red[index] * 2) { times++; continue; }
                            else if (sum > red[index] * 2)
                            {
                                index = index + 1;
                                if (index < j)
                                {
                                    if (sum == red[index] * 2) { times++; continue; }
                                    if (sum > red[index] * 2)
                                    {
                                        index = index + 1;
                                        if (index < j)
                                        {
                                            if (sum == red[index] * 2) { times++; continue; }

                                        }

                                    }
                                }
                            }
                            else
                            {
                                index = index - 1;
                                if (index > i) //必须大于首号的index序号是个动态值
                                {
                                    if (sum == red[index] * 2) { times++; continue; }
                                    if (sum < red[index] * 2)
                                    {
                                        index = index - 1;
                                        if (index > i) //必须大于首号的index序号是个动态值
                                        {
                                            if (sum == red[index] * 2) { times++; continue; }
                                        }

                                    }

                                }

                            }
                        }
                    }
                }
            }
            if (times > 1) return true;
            return false;
        }

    }
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值