
算法设计
iNuoXia
iosjavascripthtml5多多交流嘿嘿...
展开
-
1的数目
编程之美2.4节 1的数目题目:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N=2, 写下1, 2.这样只出现1个“1”。N=12, 写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,“1”的个数是5.问题是:1. 写个函数f(N), 返回1都N之间出现的“1”的个数,比如f(12)=原创 2012-08-11 01:45:50 · 294 阅读 · 0 评论 -
约瑟夫问题的数学解法
约瑟夫问题:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。用数学方法解的时候需要注意应当从0开始编号,因为取余会等到0解。实质是一个递推,n个人中最终剩下来的序号与n-1个人中剩下来的人的序号有一个递推关系式。分析如下:假设我们第m-1个人退出。0, 1, 2, 3,原创 2012-08-13 16:06:06 · 274 阅读 · 0 评论 -
整数的划分
题目:整数的划分(即求一个数N由小于等于N的数相加所得到的所有组合)比如整数6的划分有11种方案:65+14+2,4+1+13+3,3+2+1,3+1+1+1,2+2+2,2+2+1+1,2+1+1+1+11+1+1+1+1+1 下面给出3种求解方案数目的方法,其中第三个方法也实现输出各个方案的功能。-----------------------原创 2012-08-15 02:41:47 · 257 阅读 · 0 评论 -
字符串的组合与排列 - 递归实现
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。分析:递归实现,根据组合公式C(n,k) = C(n-1,k) + C(n-1,k-1), 如果我们想要在长度为n的字符串中求k个字符的组合,首先选择第一个字符,对余下n-1个字符可以分为两个部分进行求解:(1)当前组合中包含当前字符,那么只需要在剩下的n-1个字符原创 2012-08-12 22:17:26 · 935 阅读 · 1 评论 -
最长公共子序列
题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串,则输出它们的长度4,并打印任意一个子串。思路:利用原创 2012-08-09 18:46:45 · 294 阅读 · 0 评论