- 博客(5)
- 收藏
- 关注
原创 任何一个正整数都可以用2的幂次方表示
例如:137=2^7+2^3+2^0,约定a^b可表示为a(b),则137可表示为:2(7)+2(3)+2(0),进一步7=2^2+2+2^0,3=2+2^0。所以137最终可以表示为2(2(2)+2+2(0))+2(2+2(0))+2(0)。输入:正整数(n<=20 000).输出:符合约定的n的0,2表示(在表示中不能有空格)。算法设计:由于不知道数据的位数,加上对数据还是从低位到高位的操作
2016-03-31 19:57:32 12735
原创 整数的分划问题
对于一个正整数n的分划,就是把n表示成正整数之和的表达式。主要,分划与顺序无关,例如6=5+1和6=1+5被认为是同一种分划。解题思路:定义一个函数Q(n,m),表示正数n的“任何加数都不超过m”的分划的数目,n的所有分划数目P(n)就应该表示为Q(n,n)一般的Q(n,m)有如下递归关系: 1) Q(n,n) = 1+Q(n,n-1) 2) Q(n,m) = Q(n,m-
2016-03-30 16:51:20 1642
原创 汉诺塔问题:64个盘子,3个基座A、B、C,编程打印处移动过程
思路:利用递归分三步走 1. 将n个盘子从a移到b,c作为辅助 2. 将第n个盘子从a移到b 3. 将c中的n-1个盘子移到b,a作为辅助#include <iostream>using namespace std;//将n个盘子从a移到b,c作为辅助void hanoi(int n, char a, char b, char c){ if(n>0)
2016-03-30 15:59:04 8482
原创 Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below. Input:Digit string “23”
2016-03-29 11:56:21 342
原创 STL中计算排列组合关系的算法
算法思想:首先,从最尾端开始往前寻找两个相邻的元素,令第一个元素为*i,第二个元素为*ii,且满足 *i < *ii 。找到这样一组相邻元素后,再从最尾端开始往前检验,找出第一个大于*i的元素,令为*j,将i,j元素对调,再将ii之后的所有元素颠倒排列。此即所求之“下一个”排列组合。STL中函数名称为next_permutation,这里改为next_permutate,下面是具体实现:temp
2016-03-26 13:36:36 1425
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人