梦幻西游大区排行:题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 15:39:46
要的是 程序!!!!!!!!!!!!

#include<iostream>
using namespace std;
bool used[3];
int buf[4];
void output(int a[]){
for(int i=0; i<3; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void dfs(int deep) {
if (deep == 4) {
output(buf);
return;
}
for (int i = 0; i < 4; i++){
if (used[i] == false) {
buf[deep] = i + 1;
used[i] = true;
dfs(deep+1);
used[i] = false;
}
}
}

int main() {
memset(used, false, sizeof(used));
dfs(0);
}
运行下试试

main()
{
int count=0,i;

for(i=100;i<1000,i++)
{
if(i%10==0||i%10>4)continue;
if((i/10)%10==0||(i/10)%10==0)continue;
if((i/100)%10==0||(i/100)%10==0)continue;
printf("%d ",i);
if(count++%10==0)printf("\n");
}
printf("total is %d",count);
}

怎么那么麻烦?
main()
{
int sum=0;
int i,j,k,l;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
if(i!=j&&j!=k&&i!=k) {printf("%d%d%d\n",i,j,k); sum++;}
printf("%d",sum);
getch();
}