69,369
社区成员
发帖
与我相关
我的任务
分享
/*
* Author: Leng_que
* Date: 2009年7月9日
* E-mail: leng_que@yahoo.com.cn
* Description: 我的博客 http://blog.csdn.net/leng_que/
*/
#include <vector>
#include <iostream>
using namespace std;
void A(int n,int m)
{
int i,k;
vector<int> num;
for ( i=0; i<n; i++ )
{
num.push_back(1);
}
int len=num.size();
int off_len = len-1;
m++;
while (1)
{
//输出结果
for ( i=0; i<len; i++ )
{
cout<<num[i];
if ( i!=off_len )
{
cout<<"、";
}
}
cout<<endl;
num[off_len]++;
//进位判断及调整
for ( k=off_len; k>0; --k )
{
if ( num[k] == m )
{
num[k] = 1;
num[k-1]++;
if ( num[0] == m )
{
return ;
}
}
}
}
}
int main(void)
{
A(3,11);
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
void output(const std::vector<int> & arr)
{
for(std::vector<int>::const_reverse_iterator i = arr.rbegin();i != arr.rend();++i)
cout<<*i<<" ";
cout<<endl;
}
void A(int n,int m)
{
if(n < 1 || m < 1)
return;
std::vector<int> arr(n,1);
output(arr);
for(;;){
int i = 0;
for(;i < n;++i){
if(++arr[i] > m)
arr[i] -= m;
else{
break;
}
}
if(i >= n)
break;
output(arr);
}
}
int main()
{
A(3,11);
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
void swap(char *str1,char *str2)
{
char temp;
temp=*str1;
*str1=*str2;
*str2=temp;
}
void permStr(char *str,int i)
{
//printf("%d",i);
if(i==strlen(str)-1)
printf("%s\n",str);
else
{
for(int j=i;j<strlen(str);j++)
{
//printf("i %d,j %d",i,j);
swap(&str[i],&str[j]);
permStr(str,i+1);
swap(&str[i],&str[j]);
}
}
}
void main()
{
char str[]={"abcde"};
permStr(str,0);
}
/*
* Author: Leng_que
* Date: 2009年7月9日
* E-mail: leng_que@yahoo.com.cn
* Description: 我的博客 http://blog.csdn.net/leng_que/
*/
#include <string>
#include <iostream>
using namespace std;
void all_order(string str, int base)
{
int n;
char cBase = base+48;
int len = str.size()-1;
while(1)
{
//
cout<<str<<endl;
//
str[len] += 1;
for ( n=len; n>0; --n )
{
if ( str[n] == cBase )
{
str[n] = '1'; //遇到进位时变为1
str[n-1] += 1;
}
if ( n==1 )
{
if ( str[0] == cBase )
{
return ;
}
}
}
}
}
void A(int n,int m)
{
//逢m+1进1
int base=m+1;
//初始位
string str;
for ( int i=0; i<n; i++ )
{
str += "1";
}
all_order(str,base);
}
int main(void)
{
A(3,4);
return 0;
}