1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.1给定四数连续
#include<iostream>
using namespace std;
int main(){
int Count=0;
for(int i=1;i<5;i++){
for(int j=1;j<5;j++){
for(int k=1;k<5;k++){
if(i!=j&&j!=k&&k!=i){
cout<<i<<j<<k<<"\t";
Count++;
}
}
}
}
cout<<"满足上述条件的数有"<<Count<<"个"<<endl;
return 0;
}
备注:凑巧此四个数连续,直接三重for循环,确保三位数各个相同即可。如若给定四个数不连续,可用数组解决。
1.2给定四数不连续
#include<iostream>
using namespace std;
template <class T>
int getArrayLen(T& array){
return (sizeof(array)/sizeof(array[0]));
}
int main(){
int Count=0;
int arr[4]={5,2,9,6};
int arrLength=getArrayLen(arr);
for(int i=0;i<arrLength;i++){
for(int j=0;j<arrLength;j++){
for(int k=0;k<arrLength;k++){
if(arr[i]!=arr[j]&&arr[j]!=arr[k]&&arr[k]!=arr[i]){
cout<<arr[i]<<arr[j]<<arr[k]<<"\t";
Count++;
}
}
}
}
cout<<"满足上述条件的数有"<<Count<<"个"<<endl;
return 0;
}
备注:若给定的四数不连续,放在数组中,其后与上述1.1类同.