如题,一个网友问的,我又去问其他的网友,再网上搜索,发贴问,最后终于解决,不过目前还没有明白为什么要这样写,以下是代码:
class Program
{
static void Main(string[] args)
{
double[] numbers = new double[] { 258.5, 1229.1, 39.6, 660.3, 660, 660, 165, 165, 3060, 270, 4.8, 440, 279.06, 47.89, 38.02, 600, 286, 63.36, 1530, 1320, 1344, 3954 };
Console.WriteLine("原数列:258.5,1229.1,39.6,660.3,660,660,165,165,3060,270,4.8,440,279.06,47.89,38.02,600,286,63.36,1530,1320,1344,3954\n\n");
SumFinder.FindSum(numbers, 7785.52);
// SumFinder.FindSum(new double[]{1,2,2,3,5}, 10);
}
}
static class SumFinder
{
public static void FindSum(double[] numbers, double targetSum)
{
int elementCount = numbers.Length;
int lastCombination = 2 << elementCount - 1;
int firstCombination = 1;
double sum;
for (int i = firstCombination; i <= lastCombination; i++)
{
sum = 0;
for (int pos = 0; pos < elementCount; pos++)
{
if ((i & (1 << pos)) != 0) //当前组合第pos个数是否取中
sum += numbers[pos];
}
if (sum == targetSum)
{
string str = "";
for (int pos = 0; pos < elementCount; pos++)
{
if ((i & (1 << pos)) != 0)
{
str += numbers[pos]+" + ";
}
}
Console.Write(str.Substring(0,str.Length-3)+" = " + targetSum);
Console.WriteLine();
}
}
Console.WriteLine("结束");
Console.ReadLine();
}
{
static void Main(string[] args)
{
double[] numbers = new double[] { 258.5, 1229.1, 39.6, 660.3, 660, 660, 165, 165, 3060, 270, 4.8, 440, 279.06, 47.89, 38.02, 600, 286, 63.36, 1530, 1320, 1344, 3954 };
Console.WriteLine("原数列:258.5,1229.1,39.6,660.3,660,660,165,165,3060,270,4.8,440,279.06,47.89,38.02,600,286,63.36,1530,1320,1344,3954\n\n");
SumFinder.FindSum(numbers, 7785.52);
// SumFinder.FindSum(new double[]{1,2,2,3,5}, 10);
}
}
static class SumFinder
{
public static void FindSum(double[] numbers, double targetSum)
{
int elementCount = numbers.Length;
int lastCombination = 2 << elementCount - 1;
int firstCombination = 1;
double sum;
for (int i = firstCombination; i <= lastCombination; i++)
{
sum = 0;
for (int pos = 0; pos < elementCount; pos++)
{
if ((i & (1 << pos)) != 0) //当前组合第pos个数是否取中
sum += numbers[pos];
}
if (sum == targetSum)
{
string str = "";
for (int pos = 0; pos < elementCount; pos++)
{
if ((i & (1 << pos)) != 0)
{
str += numbers[pos]+" + ";
}
}
Console.Write(str.Substring(0,str.Length-3)+" = " + targetSum);
Console.WriteLine();
}
}
Console.WriteLine("结束");
Console.ReadLine();
}
}
posted @ 2012-01-17 16:06 牛腩 阅读(38) 评论(0) 编辑
花了一天多时间研究出来的,其实也就是网上下别人的代码然后再自己修修改改的,真够花时间的,经测试上传得100MB的文件,效果截图如下:
引用
备忘录:
·示例中默认最大上传文件大小是100M,如果需要修改的除了要修改JS中定义的值之外别忘记修改web.config文件中的httpRuntime节点定义的值
·JS的事件定义中隐藏了一些输出提示信息的代码的,要调试的可以自己取消注释,事件里的一些参数是什么意思可自己去搜索GOOGLE
·也可以直接设置定义中的 debug: true打开调试信息,这样可能看得更清楚一点
·不要从网上下载不同的swfupload版本来覆盖项目中的版本,主要是swfupload.js文件不能动
·本示例在Chrome 15.0.874.121 m,FireFox 8.0.1,IE9的两种兼容模式下测试通过
示例下载地址:http://niunan.net/download/swfupload.rar
posted @ 2012-01-12 15:46 牛腩 阅读(119) 评论(2) 编辑
最好的方法当然就是在提取数据的时候连行号也一起取出来,SQL Server中有row_number()函数,但是最近做的一个项目用的是MYSQL的,上网查了一下,没有现成的函数,网上说要自己写,懒得写了,直接在程序中输出行号就好,在绑定的时候可以用 <%# Container.ItemIndex+1 %>来绑定行号的,但是这种做法如果有分页的话,那么行号又是从1开始了。
自己想了一下,解决如下:
用的是anp分页控件,那就可以得到从几开始的数了,这样就可以输出行号了,
前台绑定代码如下:
后台代码如下:
自己想了一下,解决如下:
用的是anp分页控件,那就可以得到从几开始的数了,这样就可以输出行号了,
前台绑定代码如下:
<%# GetXH(Container.ItemIndex) %>
//获取序号
public string GetXH(object index)
{
// return (((anp.CurrentPageIndex - 1) * anp.PageSize) + int.Parse(index.ToString())+1).ToString();
return (anp.StartRecordIndex + int.Parse(index.ToString())).ToString();
}
public string GetXH(object index)
{
// return (((anp.CurrentPageIndex - 1) * anp.PageSize) + int.Parse(index.ToString())+1).ToString();
return (anp.StartRecordIndex + int.Parse(index.ToString())).ToString();
}
posted @ 2011-12-26 20:54 牛腩 阅读(39) 评论(0) 编辑
在做一个项目,ASP.NET操作MYSQL数据库的,使用参数化方法,开始的时候用@,发现不成,后来上网查了才知道,原来得用?,代码如下:用到了我自己写的那个MYSQLHELPER类
MySqlConnection conn = new MySqlConnection(connstr);
conn.Open();
MySqlCommand cmd = new MySqlCommand("select count(1) from qyexam_notice where title=?title",conn);
cmd.Parameters.Add(new MySqlParameter("?title", "《测试试卷》2011/12/14 10:47:00开始"));
object obj = cmd.ExecuteScalar();
conn.Close();
conn.Open();
MySqlCommand cmd = new MySqlCommand("select count(1) from qyexam_notice where title=?title",conn);
cmd.Parameters.Add(new MySqlParameter("?title", "《测试试卷》2011/12/14 10:47:00开始"));
object obj = cmd.ExecuteScalar();
conn.Close();
Response.Write("结果:"+obj);
posted @ 2011-12-14 10:35 牛腩 阅读(36) 评论(0) 编辑
牛腩购物网
最新出的视频,演示网站 http://shop.niunan.net/
有意购买者可加本人QQ(164423073)或者加入本人建立的QQ群(96951813)咨询,本人为已购买者提供终生免费技术问答服务(通过email或者QQ提问和解答:164423073@qq.com,只限本人所知道的知识),对,您没有看错,您只需要30元人民币,赶快拿起您手中的支付宝,马上定购吧,您只需要30元,30元,学成后,您就是白领!!!
--不是所有视频都出自牛腩
posted @ 2011-02-12 14:13 牛腩 阅读(230) 评论(0) 编辑
摘要: 刚刚收到《网页设计创意书》,确实有点惊喜,开始以为是像之前审读的书一样是一叠叠的打印纸,没想到是一本成品书,拿到手上沉甸甸的,随便翻看了一下,没想到里面竟然还是全彩页印刷的,本书的第一感觉让人觉得:真值。 《网页设计创意书》从书名上看应该是一本讲如何设计网页的书籍的,开始我对其中的内容还是抱有很大的期望的,仔细翻看过后,才发现书中的内容与我预料的还是差别蛮大的,整本书中的内容大多数都是由图片构成,只是在每一章的前面有一小段的文字叙述,说直白一点,本书是一本由外国精美网页截图组成的《网页设计创意书》。 之前说过了本书大部分都是由外国的一些精美网页截图组成的,当然每个截图下面都有该网页的网址,但是阅读全文
posted @ 2011-01-08 11:14 牛腩 阅读(197) 评论(0) 编辑
摘要: 在安装大多数CMS的时候都会在安装界面上看到这样的一个效果:引用系统正在配置....开始执行SQL.....开始插入测试数据....测试数据插入完成.... 每一步完成后都会在一个区域里输出相关的信息,自己对照着这个效果做了一下,基本成功,其实也就是通过 AJAX调用后台处理一些代码,处理完后返回给前台,在前台中的回调函数中输出相关信息,然后再在回调函数中再次调用AJAX调用后台处理..... 我...阅读全文
posted @ 2010-10-13 11:03 牛腩 阅读(81) 评论(0) 编辑
摘要: 自己在WEB开发中必备的资料整理了一下,包含如下东西:以上工具都是本人在WEB开发中常用的,那个截图工具有个获取屏幕上任何一个地方的颜色值,很好用,而且用它来计算DIV的宽度高度也很好用.更新于 2010年10月4日15时45分,增加了正则表达式的相关工具下载地址:http://niunan.net/download/web.rar阅读全文
posted @ 2010-10-04 15:49 牛腩 阅读(248) 评论(0) 编辑
摘要: [代码]以上SQL语句就是选择access所有的表的SQL语句的,本来想直接写SQL语句把每个表的记录数给统计出来的,不过还没有找到办法,只能是先取出所有的表了,然后在外面用程序来计算记录数了阅读全文
posted @ 2010-09-17 11:54 牛腩 阅读(38) 评论(0) 编辑
摘要: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//获取本周的周一publicstringGetThisWeekMonday(){DateTimedate=DateTime.Now;DateTimefirst=System.DateTime.Now...阅读全文
posted @ 2010-09-17 11:51 牛腩 阅读(61) 评论(0) 编辑

