stl 中的下一个排列在写一遍忘了写个1个多小时,使用递归写的,错误就在我使用一个list保存当前剩下的数,然后利用k/(n-1)!的阶乘就是删除的数字,但进过观察,比如 list={1,2,3}分成3组:1 {2,3}2 {1,3}3 {1,2}确定位于哪个组,然后确定位于哪个组的第几个nyoj ...
分类:
其他好文 时间:
2014-07-13 23:06:42
阅读次数:
254
2014.07.08 22:43简介: “搜索”与“剪枝”几乎是如影随形的。此处的“搜索”指的是带有回溯算法的深度优先搜索。 在之前的“Minimax策略”中我们给出了一个三连棋的程序,运行后你就知道计算一步棋要花多少时间。 为了计算最优的一步棋,我们可能需要递归9万多次。如果毫无疑问这种阶乘...
分类:
编程语言 时间:
2014-07-12 13:01:38
阅读次数:
728
145是个奇怪的数字,因为1!+ 4! + 5! = 1 + 24 + 120 = 145。
请求出能表示成其每位数的阶乘的和的所有数的和。
请注意:由于1! = 1和2! = 2不是和,故它们并不包括在内。
---------------------------------------------------
原来0的阶乘是1。。。。我弱智了。。。
粗略的运算一下数据范围,发现不会超过...
分类:
其他好文 时间:
2014-07-10 17:17:49
阅读次数:
170
分析:
对N进行质因数分解 N=2^x * 3^y * 5^z...,由于10 = 2*5,所以末尾0的个数只和x与z有关,每一对2和5相乘可以得到一个10,于是末尾0的个数=min(x,z)。在实际中x是远远大于z的,所以我们只要求出z的值即可。
根据公式
z = N/5 + N/5^2 + N/5^3+...+N/5^k
这表明,5的倍数贡献了一个5,5^2的倍数又贡献了一...
分类:
其他好文 时间:
2014-07-02 09:54:52
阅读次数:
225
题目poj题目zoj//我感觉是题目表述不确切,比如他没规定xi能不能重复,比如都用1,那么除了0,都是YES了//算了,这种题目,百度来的过程,多看看记住就好//题目意思:判断一个非负整数n能否表示成几个数的阶乘之和//这里有一个重要结论:n!>(0!+1!+……+(n-1)!),//证明很容易,...
分类:
其他好文 时间:
2014-07-01 17:58:54
阅读次数:
289
首先,这个题是要求出给定数字的阶乘结果的倒数第一个不为0 的尾数,这需要我们通过阶乘的性质归纳总结出一定的规律,其次,由于题目要求的数字较大,对于高精度的数据可以适当采用java来求解
原文链接http://blog.csdn.net/rappy/article/details/1903360
首先对数列 d [10] = {1, 1, 2, 3, 4, 1, 6, 7, 8, 9} ...
分类:
其他好文 时间:
2014-07-01 15:00:55
阅读次数:
269
A过去后看了一下别人的解法,发现除了打表还有一种数论的方法。分析一下阶乘后面的0是怎么出现的呢,当然是2乘5得到的。我们将1~N先放在一个数组里面。从数组第一个元素开始,先统计一下N!中因子为5的个数记为count,将其除去,然后再除去count个2。这样一来的话把所有元素乘起来后就不会出现10的倍...
分类:
其他好文 时间:
2014-07-01 10:23:40
阅读次数:
328
项目中一个算法中涉及到了组合,大概业务是:给定一个值X,从n个数中找出能组合加起来和X相等的集合。如果用通常的组合算法,数量级是2的n的阶乘,如果记录比较多的话,有效率问题。我针对我们的业务,优化写了一个算法。
大概逻辑:先给n个值从小到大排序形成一个队列,组合数从2开始依次递增,每次执行一个剔除操作,假设组合数递增到m,取队列中前面m-1个连续的值,并加上最大的一个值V,如果大于...
分类:
其他好文 时间:
2014-06-26 10:36:46
阅读次数:
234
24. Small factorials 这题目非常简单,求“小整数(1-100)”的阶乘。题目规定了时间和程序大小。 所以能想到的最简单的循环,递归,和全算出来查表都是不行的。 正确的方法的算法,如这个博客所示,写的非常清楚了,数组进位法: http://www.open-open.com/hom...
分类:
编程语言 时间:
2014-06-25 13:16:39
阅读次数:
222
【描述】N的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=1*2*3*4*5=120所以5!的最后面的非零位是2,7!=1*2*3*4*5*6*7=5040,所以最...
分类:
其他好文 时间:
2014-06-25 12:49:26
阅读次数:
218