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;
}
}
}