c++实现数字的全排列
2016-08-31 11:44
106 查看
#include <iostream> #include <vector> using namespace std; void recursivePrint(vector<char> number,int length,int index) { if(index == length - 1) { for(int i = 0 ; i < length; ++i) cout << number[i] ; cout << endl; return; } for(int i = 0; i < 10; ++i) { number[index + 1] = i + '0'; recursivePrint(number,length,index + 1); } } void printFullSortNumbers(int n) { if(n == 0) return ; vector<char> res(n+1,'0'); for(int i = 0; i < 10; i ++) { res[0] = i +'0'; recursivePrint(res,n,0); } } int main() { int a = 2; printFullSortNumbers(a); return 0; }
第二种方法,其实跟上面类似
#include <iostream>
using namespace std;
void printRecurve(int a[],int len,int k)
{
if(len == k)
{
for(int i = 0; i <= len; ++i)
cout << a[i] ;
cout <<endl;
}
else
{
for(int idx = k ; idx <= len; ++idx)
{
swap(a[idx],a[k ]);
printRecurve(a,len,k + 1);
swap(a[idx],a[k]);
}
}
}
int main()
{
int b[3] = {1,2,3};
printRecurve(b,2,0);
return 0;
}
相关文章推荐
- C++实现按数字位数递增排列
- 递归实现数字排列组合
- 实现4个数字算24的C和C++
- java 递归 实现数字的排列组合
- C++实现六位数字密码字典的生成 2012-2-12 12:16
- stackoverflow | C/C++ | 如何不使用循环和判断语句实现“打印从1到100之间的数字”
- 回溯实现数字的排列组合
- 【数字图像处理】C++读取、旋转和保存bmp图像文件编程实现(转载)
- 全排列算法及其C++实现
- 【小程序】JAVA实现从10~50中随机生成50个数,统计出现的数字及次数,输出出现最多的次数及对应的数字,按数字升序排列。
- C++实现输入一个整数,将各位数字反转后输出
- 递归实现数字的组合(C++)
- 编写代码实现从输入流中分析出数字串(C++)
- 编写代码实现从输入流中分析出数字串(C++)
- 利用C++中的stringstream类轻松实现字符串和数字的互相转换
- 递归实现数字排列组合
- 全排列c++实现
- 【原】输入三个数字,从小到大排列显示的实现
- 排列生成器(用 c++实现)【数据结构】
- C++实现字符串与数字的连接