当前位置: 首页 > 图文教程 > .Net技术 > C# > C#实现24点算法源代码

C#
C#:小编详谈ASP.NET和JSP技术
C#:小编详谈StringBuilder
C#:使用CSS的8种技巧
C#:C#开发技巧之将图片存入数据库
C#:C#技术点之利用Image制作小动画
C#:C#开发技巧之如何根据年份判断十二生肖
C#:如何制作自动播放的MP3播放器
c#:C#技术利用鼠标绘图
C#:禁用鼠标左键
C#:如何使用匿名方法
C#:小编教你如何实现特殊形状的窗体
C#:在C#应用程序控制输入法
C#:小编教大家实现堆栈
C#:C#中数组知识点的精华
C#:小编谈C#中TextBox控件的应用技巧
C#:小编教大家设置货币值中使用的小数位数
C#:C#中实现倒计时功能
C#:小编教大家创建一个数字时钟
C#:小编教大家如何向ListView控件添加搜索功能
C#:小编浅谈如何在DataGridView控件中验证数据输入

C#实现24点算法源代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 214 ::
收藏到网摘: n/a

编写环境VS2005
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 计算24
{
    public partial class Form1 : Form
    {
        double A,B,C,D,NumberA,NumberB,NumberC,NumberD;
   
        public void jisuan24(int i)
        {  
            //24种转换
            switch (i)
            { 
                case 1:
                    A = NumberA; B = NumberB; C = NumberC; D = NumberD;
                    break;
                case 2:
                    A = NumberA; B = NumberB; D = NumberC; C = NumberD;
                    break;
                case 3:
                    A = NumberA; C = NumberB; B = NumberC; D = NumberD;
                    break;
                case 4:
                    A = NumberA; C = NumberB; D = NumberC; B = NumberD;
                    break;
                case 5:
                    A = NumberA; D = NumberB; B = NumberC; C = NumberD;
                    break;
                case 6:
                    A = NumberA; D = NumberB; C = NumberC; B = NumberD;
                    break;

                case 7:
                    B = NumberA; A = NumberB; C = NumberC; D = NumberD;
                    break;
                case 8:
                    B = NumberA; A = NumberB; D = NumberC; C = NumberD;
                    break;
                case 9:
                    B = NumberA; C = NumberB; A = NumberC; D = NumberD;
                    break;
                case 10:
                    B = NumberA; C = NumberB; D = NumberC; A = NumberD;
                    break;
                case 11:
                    B = NumberA; D = NumberB; A = NumberC; C = NumberD;
                    break;
                case 12:
                    B = NumberA; D = NumberB; C = NumberC; A = NumberD;
                    break;
                case 13:
                    C = NumberA; A = NumberB; B = NumberC; D = NumberD;
                    break;
                case 14:
                    C = NumberA; A = NumberB; D = NumberC; B = NumberD;
                    break;
                case 15:
                    C = NumberA; B = NumberB; A = NumberC; D = NumberD;
                    break;
                case 16:
                    C = NumberA; B = NumberB; D = NumberC; A = NumberD;
                    break;
                case 17:
                    C = NumberA; D = NumberB; A = NumberC; B = NumberD;
                    break;
                case 18:
                    C = NumberA; D = NumberB; B = NumberC; A = NumberD;
                    break;
                case 19:
                    D = NumberA; A = NumberB; B = NumberC; C = NumberD;
                    break;
                case 20:
                    D = NumberA; A = NumberB; C = NumberC; B = NumberD;
                    break;
                case 21:
                    D = NumberA; B = NumberB; A = NumberC; C = NumberD;
                    break;

                case 22:
                    D = NumberA; B = NumberB; C = NumberC; A = NumberD;
                    break;
                case 23:
                    D = NumberA; C = NumberB; A = NumberC; B = NumberD;
                    break;
                case 24:
                    D = NumberA; C = NumberB; B = NumberC; A = NumberD;
                    break;
            }

        }
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            NumberA=Convert.ToDouble(txt1.Text);
NumberB=Convert.ToDouble(txt2.Text);
NumberC=Convert.ToDouble(txt3.Text);
NumberD=Convert.ToDouble(txt4.Text);
lblshow.Text="解题中....";
//1种算法
for(int i=1;i<=24;i++)
{
jisuan24(i);
if((A+B+C+D)==24)
lblshow.Text=A + "+" +B + "+"+ C + "+" + D +"=24";
if((A+B+C-D)==24)

lblshow.Text=A + "+" +B + "+"+ C + "-" + D +"=24";
//3
               if(A * B + C + D==24)

               lblshow.Text=A + "*" +B + "+"+ C + "+" + D +"=24";
//4
if( A * B + C - D==24)
lblshow.Text=A + "*" +B + "+"+ C + "-" + D +"=24";
//5
if( A * B * C + D==24)
lblshow.Text=A + "*" +B + "*"+ C + "+" + D +"=24";
//6
if(A * B * C - D==24)
lblshow.Text=A + "*" +B + "*"+ C + "-" + D +"=24";

//7
if(A * B * C * D==24)

lblshow.Text=A + "*" +B + "*"+ C + "*" + D +"=24";
//8
if(A * B + C * D==24)
lblshow.Text=A + "*" +B + "+"+ C + "*" + D +"=24";
//9

                 if(A * B - C * D==24)
lblshow.Text=A + "*" +B + "-"+ C + "*" + D +"=24";
//10
if(A / B + C + D==24)
lblshow.Text=A + "/" +B + "+"+ C + "+" + D +"=24";
//11
if(A * B / C + D==24)
lblshow.Text=A + "*" +B + "/"+ C + "+" + D +"=24";
//12
if(A * B / C - D==24)
lblshow.Text=A + "*" +B + "/"+ C + "-" + D +"=24";
//13
if( A * B * C / D==24)
lblshow.Text=A + "*" +B + "*"+ C + "/" + D +"=24";
//14
if(A * B / C / D==24)
lblshow.Text=A + "*" +B + "/"+ C + "/" + D +"=24";
//15
if( (A + B) * C / D==24)
lblshow.Text=(A + "+" +B) + "*"+ C + "/" + D +"=24";
//16
if((A + B) * C * D==24)
lblshow.Text=(A + "+" +B) + "*"+ C + "*" + D +"=24";
//17
if((A + B) * (C + D)==24)
lblshow.Text=(A + "+" +B) + "*"+ (C + "+" + D) +"=24";
//18
if((A + B) * (C - D)==24)
lblshow.Text=(A + "+" +B) + "*"+ (C + "-" + D) +"=24";
//19
if((A - B) * (C - D)==24)
lblshow.Text=(A + "-" +B) + "*"+ (C + "-" + D) +"=24";
//20
if((A - B) * C / D==24)
lblshow.Text=(A + "-" +B) + "*"+ (C + "/" + D) +"=24";
//21
if((A - B) * C * D==24)

lblshow.Text=(A + "-" +B) + "*"+ (C + "*" + D) +"=24";
//22
if((A + B + C) * D==24)
lblshow.Text=(A + "+" +B + "+"+ C) + "*" + D +"=24";
//23
if((A + B + C) / D==24)
lblshow.Text=(A + "+" +B + "+"+ C) + "/" + D +"=24";
//24
if((A + B - C) * D==24)
lblshow.Text=(A + "+" +B + "-"+ C) + "*" + D +"=24";
//25
if(A * (B + C) + D==24)
lblshow.Text=A + "*" +(B + "+"+ C) + "+" + D +"=24";
//26
if( A * (B - C) + D==24)

lblshow.Text=A + "*" +(B + "-"+ C) + "+" + D +"=24";
//27
if( A * (B + C) - D==24)
lblshow.Text=A + "*" +(B + "+"+ C) + "-" + D +"=24";
//28
if(A * (B - C) - D==24)
lblshow.Text=A + "*" +(B + "-"+ C) + "-" + D +"=24";
//29
if(A + (B + C) / D==24)
lblshow.Text=A + "+" +(B + "+"+ C) + "/" + D +"=24";
if((A-B/C)*D==24)
//30
lblshow.Text=(A + "-" +B + "/"+ C) + "*" + D +"=24";

    }
 if(lblshow.Text=="解题中....")
{
lblshow.Text="此题无解";
}
}

        private void button2_Click(object sender, EventArgs e)
        {
            Random rd=new Random();
            int a=rd.Next(1,11);
            int b=rd.Next(1,11);
            int c=rd.Next(1,11);
            int d=rd.Next(1,11);
            //if(a==)
            txt1.Text=a.ToString();
            txt2.Text=b.ToString();
            txt3.Text=c.ToString();
            txt4.Text=d.ToString();
            lblshow.Text="出题完毕,请解答";
            
        }
        }
    }