c语言数字编排的问题
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?这个怎么做啊!最好标出每部的解释谢啦!!
#include <stdio.h> main() { int a,b,c; /*定义 三个变量来存放数值*/ for(a=1;a<=4;a++) /*让a从1开始上加到4*/ for(b=1;b<=4;b++) /*上同*/ for(c=1;c<=4;c++) /*上同*/ if(a!=b&&b!=c&&c!=a) /*确保不重复出现 a b c*/ printf("%3d%d%d",a,b,c); /* 输出 。。 前面的%3d 是为了好查看*/ getch(); }
#include<iostream> using namespace std; class permute { private: const int evn_size; const int N; protected: int *x; bool IsOk(int k) { for( int i=0;i<k;i++) { if( x[i]==x[k]) return false; } return true; } void cycle(int k) { if( k > evn_size) { for( int i=0;i<evn_size;i++) cout<<x[i]<<" "; cout<<endl; } else { for( int i=1;i<=N;i++) { x[k]=i; if(IsOk(k)) cycle(k+1); } } } public: permute(int m,int n):evn_size(m),N(n){ x=new int[m]; } void outcome() { cycle(0); } }; int main() { permute per(3,4); per.outcome(); return 0; }