计算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]);
}
}
}
}
}
}
}
}
}代码为穷举法,很简单不解释了。