有1到9 共9个数,求由这9个数组成的不重复数字的所有9位数?
3个回答
展开全部
/*
显然所有的这种九位数有9x8x7x6x5x4x3x2x1=9!=362880个,用数学中的排列组合很容易得出,用程序来找反而显得麻烦,我们用计算机的目的是什么?不就是利用它的计算能力简化我们的计算吗?但这题用计算机求解反而麻烦。
不过程序还得写,本题的c程序在win-tc和Dev-c++下调试通过:
*/
#include<stdio.h>
#include<conio.h>
int main()
{
long m=0;
int a[9];
for(a[0]=1;a[0]<=9;a[0]++)
for(a[1]=1;a[1]<=9;a[1]++)
{ if(a[1]!=a[0])
{ for(a[2]=1;a[2]<=9;a[2]++)
{ if(a[2]!=a[1]&&a[2]!=a[0])
{ for(a[3]=1;a[3]<=9;a[3]++)
{ if(a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])
{ for(a[4]=1;a[4]<=9;a[4]++)
{ if(a[4]!=a[3]&&a[4]!=a[2]&&a[4]!=a[1]&&a[4]!=a[0])
{ for(a[5]=1;a[5]<=9;a[5]++)
{ if(a[5]!=a[4]&&a[5]!=a[3]&&a[5]!=a[2]&&a[5]!=a[1]&&a[5]!=a[0])
{ for(a[6]=1;a[6]<=9;a[6]++)
{ if(a[6]!=a[5]&&a[6]!=a[4]&&a[6]!=a[3]&&a[6]!=a[2]&&a[6]!=a[1]&&a[6]!=a[0])
{ for(a[7]=1;a[7]<=9;a[7]++)
{ if(a[7]!=a[6]&&a[7]!=a[5]&&a[7]!=a[4]&&a[7]!=a[3]&&a[7]!=a[2]&&a[7]!=a[1]&&a[7]!=a[0])
{ for(a[8]=1;a[8]<=9;a[8]++)
{ if(a[8]!=a[7]&&a[8]!=a[6]&&a[8]!=a[5]&&a[8]!=a[4]&&a[8]!=a[3]&&a[8]!=a[2]&&a[8]!=a[1]&&a[8]!=a[0])
{ printf("%d%d%d%d%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
m++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
printf("m=:%ld\n",m);
getch();
return 0;
}
显然所有的这种九位数有9x8x7x6x5x4x3x2x1=9!=362880个,用数学中的排列组合很容易得出,用程序来找反而显得麻烦,我们用计算机的目的是什么?不就是利用它的计算能力简化我们的计算吗?但这题用计算机求解反而麻烦。
不过程序还得写,本题的c程序在win-tc和Dev-c++下调试通过:
*/
#include<stdio.h>
#include<conio.h>
int main()
{
long m=0;
int a[9];
for(a[0]=1;a[0]<=9;a[0]++)
for(a[1]=1;a[1]<=9;a[1]++)
{ if(a[1]!=a[0])
{ for(a[2]=1;a[2]<=9;a[2]++)
{ if(a[2]!=a[1]&&a[2]!=a[0])
{ for(a[3]=1;a[3]<=9;a[3]++)
{ if(a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])
{ for(a[4]=1;a[4]<=9;a[4]++)
{ if(a[4]!=a[3]&&a[4]!=a[2]&&a[4]!=a[1]&&a[4]!=a[0])
{ for(a[5]=1;a[5]<=9;a[5]++)
{ if(a[5]!=a[4]&&a[5]!=a[3]&&a[5]!=a[2]&&a[5]!=a[1]&&a[5]!=a[0])
{ for(a[6]=1;a[6]<=9;a[6]++)
{ if(a[6]!=a[5]&&a[6]!=a[4]&&a[6]!=a[3]&&a[6]!=a[2]&&a[6]!=a[1]&&a[6]!=a[0])
{ for(a[7]=1;a[7]<=9;a[7]++)
{ if(a[7]!=a[6]&&a[7]!=a[5]&&a[7]!=a[4]&&a[7]!=a[3]&&a[7]!=a[2]&&a[7]!=a[1]&&a[7]!=a[0])
{ for(a[8]=1;a[8]<=9;a[8]++)
{ if(a[8]!=a[7]&&a[8]!=a[6]&&a[8]!=a[5]&&a[8]!=a[4]&&a[8]!=a[3]&&a[8]!=a[2]&&a[8]!=a[1]&&a[8]!=a[0])
{ printf("%d%d%d%d%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
m++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
printf("m=:%ld\n",m);
getch();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<iomanip.h>
int main()
{ int i,j,k,temp;
int a[9]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i++)
for(j=0;j<8;j++)
{ for(k=0;k<9;k++)
cout<<a[k];
cout<<"\n";
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
return 0;
}
实验过.可以通过.用C++做
#include<iomanip.h>
int main()
{ int i,j,k,temp;
int a[9]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i++)
for(j=0;j<8;j++)
{ for(k=0;k<9;k++)
cout<<a[k];
cout<<"\n";
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
return 0;
}
实验过.可以通过.用C++做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main()
{ int a=9,b[],i,j,k,temp;
for(i=0;i<9;i++)
b[i]=i+1;
for(i=0;i<9;i++)
for(j=0;j<8;j++)
{ for(k=0;k<9;k++)
printf("%d",b[k]);
printf("\n");
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;}
while(1);
}
main()
{ int a=9,b[],i,j,k,temp;
for(i=0;i<9;i++)
b[i]=i+1;
for(i=0;i<9;i++)
for(j=0;j<8;j++)
{ for(k=0;k<9;k++)
printf("%d",b[k]);
printf("\n");
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;}
while(1);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询