1.问题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2.思路:填在百位、十位、个位的数字都是1、2、3、4。使用循环排列组合所有情况,再利用判断将组成所有的排列后再去掉不满足条件的排列。
3.程序流程图:
4.代码实现:
#include <iostream>
using namespace std;
const int N=100;
int main()
{
int a[N]={1,2,3,4};
int count=0;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++){
if(i!=j&&j!=k&&i!=k){
count++;
int num=a[i]*100+a[j]*10+a[k];
cout<<num<<endl;
}
}
}
}
cout<<"总共能组成"<<count<<"个互不相同且无重复数字的三位数"<<endl;
return 0;
}