泰国最火的男明星:C语言编程 列出由1,2,3,4 组成的所有没有重复数字的四位数来统计它们的个数

来源:百度文库 编辑:高校问答 时间:2024/05/05 01:18:47

更普遍的是用递归:
#include<iostream>
using namespace std;
void make(int k);
int a[4],b[4];
int t;
int main()
{
int i;
for (i=0;i<4;i++) b[i]=0;
t=0;
make(0);
cout << t << endl;
cin >> i;
return 0;
}
void make(int k)
{
int i;
if (k<4) {
for (i=0;i<4;i++) {
if (!b[i]) {
b[i]=1;
a[k]=i+1;
make(k+1);
b[i]=0;
}
}
}
else {
t++;
for (i=0;i<4;i++) {
cout << a[i];
}
cout << "\n";
}
}

1,2,3,4 组成的所有没有重复数字的四位数,实际是有4!=24个;
1,2,3,4 组成的所有(含有重复数字)的四位数,实际是有4^4=256个。

最笨的方法,就是建一个4层循环,共循环256次,剔除有重复数字的数,剩下没有重复数字的数,作统计。

选我为最佳,我就把程序验证了给你发上来。^-^

main()
{
int i,m,n,j,k,num=0;
for(i=1234;i<=4321;i++)
{n=i/1000;
m=i%1000/100;
j=i%1000%100/10;
k=i%1000%100%10;
if(n!=m&&n!=k&&n!=j&&m!=k&&m!=j&&k!=j)
num++;
}
printf("%d",num);

}
不好意思,这个是错的,我还会想的,想好再告诉你