利用 1234567890这10个数字进行加减乘除等 算术
得到 2010
例如:2010 = 1+2-(3-4-5)*6*7*8-9+0
2010 = 12*34*5-6-7-8-9+0
等要求:
1234567890这10个数字必须用到
并且每个都只能使用一次
得到 2010
例如:2010 = 1+2-(3-4-5)*6*7*8-9+0
2010 = 12*34*5-6-7-8-9+0
等要求:
1234567890这10个数字必须用到
并且每个都只能使用一次
using System.Data;namespace ConsoleApplication4
{
class Program
{
static int[] Items = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
static string[] Operators = new string[] { "+", "-", "*", "/", "" };
static DataTable Computer = new DataTable(); public static void Main(string[] args)
{
Solve(1, "1");
} static void Solve(int currentIndex, string exp)
{
if(currentIndex == 10)
{
object value = Computer.Compute(exp, null);
if ((value is int && (int)value == 2010) || (value is double && (double)value == 2010))
Console.WriteLine("{0} = 2010", exp);
return;
} for (int i = 0; i < 5; i++)
Solve(currentIndex + 1, exp + Operators[i] + Items[currentIndex]);
}
}
}
当<identity impersonate="true" />存在时,用到的权限是IIS中的匿名帐号
当没有以上配置时,用到的权限是Win2000:ASPNET帐号,Win2003:Network Service
你必须对要操作的文件夹或组件添上相应的权限(如读或写权限)
你在本机上试的时候可能用了集成Windows身份验证,所以可能是管理员权限 参考
参考
换一个能算表达式的,应该能够快不少。程序本身用的是最土的方法,没什么牛的,连雕虫小技可能都算不上吧,仅供大家娱乐了。
想快的话恐怕需要用一些类似DP的方法,或者利用波兰表达式(逆波兰也可),弄个双向搜索。