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

C#
C#和Java的区别
提高C#编程水平的50个要诀
GridView 删除/更新/取消
c#线程
C#泛型有什么好处
总体了解C#
C#2.0匿名函数
GridView中添加一个CheckBox列
C#2.0介绍之Iterators(迭代器)
.NET与Java间进行Web Service交互的选择
C# 2010命名和可选参数的新特性
利用C#远程存取Access数据库
C#中foreach基础使用方法
C#中用鼠标移动页面功能的实现
C# 4.0中泛型协变性和逆变性详解
C#:C# .Net中的类型相互转换教程
C#:C#中的基元类型
C#:语言中的重要知识详细介绍与解释
C#:浅谈C#中的集合对象(Collections)
C#:C#发起邮件会议

C#实现24点算法源代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 213 ::
收藏到网摘: 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="出题完毕,请解答";
            
        }
        }
    }