xmadman

初学c#,写了个比较傻的24点计算

//不是很完善,只能顺序计算,还没想出有什么方法能输出时候在相应的地方加上括号。

//感觉用循环套循环比较麻烦,不科学,如果再多几位数就很大代码量了

 

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default6 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        arrlist();
    }
    private void yunsuan(double a, double b, double c, double d)
    {
        double sum, sum1, sum2;
        string A, B, C, D;
        A = "+";
        B = "-";
        C = "*";
        D = "/";
        ArrayList al1 = new ArrayList();
        al1.Add(A);
        al1.Add(B);
        al1.Add(C);
        al1.Add(D);
        foreach (string str in al1)
        {
            sum = 0;
            if (str == A)
            {
                sum = a + b;
            }
            if (str == B)
            {
                sum = a - b;
            }
            if (str == C)
            {
                sum = a * b;
            }
            if (str == D)
            {
                sum = a / b;
            }
            foreach (string str1 in al1)
            {
                sum1 = 0;
                if (str1 == A)
                {
                    sum1 = sum + c;
                }
                if (str1 == B)
                {
                    sum1 = sum - c;
                }
                if (str1 == C)
                {
                    sum1 = sum * c;
                }
                if (str1 == D)
                {
                    sum1 = sum / c;
                }
                foreach (string str2 in al1)
                {
                    sum2 = 0;
                    if (str2 == A)
                    {
                        sum2 = sum1 + d;
                    }
                    if (str2 == B)
                    {
                        sum2 = sum1 - d;
                    }
                    if (str2 == C)
                    {
                        sum2 = sum1 * d;
                    }
                    if (str2 == D)
                    {
                        sum2 = sum1 / d;
                    }
                    if (sum2 == 24)
                    {
                        Response.Write(a.ToString() + str + b.ToString() + str1 + c.ToString() + str2 + d.ToString() + "<br>");
                    }
                }
            }
        }
    }
    private void arrlist()
    {
        double a, b, c, d;
        a = 2;
        b = 4;
        c = 6;
        d = 8;
        ArrayList al = new ArrayList();
        al.Add(a);
        al.Add(b);
        al.Add(c);
        al.Add(d);
        for (int i = 0; i < al.Count; i++)
        {
            for (int j = 0; j < al.Count; j++)
            {
                if (j != i)
                {
                    for (int x = 0; x < al.Count; x++)
                    {
                        if (x != i && x != j)
                        {
                            for (int y = 0; y < al.Count; y++)
                            {
                                if (y != i && y != j && y != x)
                                {
                                    yunsuan(Convert.ToDouble(al[i]), Convert.ToDouble(al[j]), Convert.ToDouble(al[x]), Convert.ToDouble(al[y]));
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}


 

posted on 2008-11-12 15:19  废柴  阅读(418)  评论(1)    收藏  举报

导航