数列的四则运算

计算1000-9999中,插入最少一个运算符后使得结果为原来序列的反序。

例如:886-> 8 * 86 = 688

using System;
using System.Data;

namespace 算法实现
{
    class SiZeYunSuan
    {
        DataTable table = new DataTable();
        //private Calculator calculator = new Calculator();我的计算机类已经不知道跑去哪里了
        string[] sign = { "+", "-", "*", "/", "" };

        public void Cal()
        {
            string exp = "";
            for (int i = 1000; i < 10000; i++)
            {
                string num = i.ToString();
                for (int j = 0; j < sign.Length; j++)
                {
                    for (int k = 0; k < sign.Length; k++)
                    {
                        for (int l = 0; l < sign.Length; l++)
                        {
                            exp = num[3] + sign[j] + num[2] + sign[k] + num[1] + sign[l] + num[0];
                            if (exp.Length > 4) {
                                if (table.Compute(exp,"").ToString() == num) {
                                    
                                    Console.WriteLine(" "+num[3]+num[2]+num[1]+num[0]);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

代码为穷举法,很简单不解释了。


首页 我的博客
粤ICP备17103704号