摘要: 这是编程之美中的一道题。编程之美中的题目是这样的:1+2=34+5=92+3+4=9等式的左边都是两个或者两个以上的连续自然数相加,那么是不是所有的整数都可以写成这样的形式?问题1:写个程序,对于一个64位正整数,输出它所有可能的连续自然数之和(两个数以上)的算式。问题2:哪些数字不能不能表示成连续自然数之和?能否证明。问题3:在64位正整数的范围内,子序列数目最多的数是哪一个?能否用数学知识推导出来。-------------------问题1:这个最先想到方法就是蛮力法。对于一个i (1 ns=new List(); for (int j = i; j 0,k>1.那么s=(m+m+ 阅读全文
posted @ 2013-09-18 18:41 orchid 阅读(1645) 评论(0) 推荐(0) 编辑
摘要: 因子的概念:假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。反过来说,我们称n为m的倍数。求一个正整数n的所有因子,非常简单。只要从1到n逐个进行测试就可以。可以削减的一点计算量是不用遍历到n,遍历到根号n就可以。C#代码如下public List Factors(int n) { List list = new List(); int rootn = Convert.ToInt32(Math.Floor(Math.Sqrt(n))); ... 阅读全文
posted @ 2013-09-18 17:53 orchid 阅读(1816) 评论(0) 推荐(0) 编辑