依然是穷举,这些代码让人怀疑for循环天生就是为穷举而生!
题:从0~9的10个数字中,选出不重复的五位数,其个位数为奇数的可能为多少?
/*完整代码*/ #include <iostream> using namespace std; int a[5]={1,3,5,7,9}; int b[5]; int main() { int n=0; for(int i=0;i<5;i++)/*第5位*/ { b[4]=a[i]; for(int j=0;j<10;j++)/*第1位*/ { if(j!=0 && j!=b[4]) { b[0]=j; for(int k=0;k<10;k++)/*第2位*/ { if(k!=b[0] && k!=b[4]) { b[1]=k; for(int h=0;h<10;h++)/*第3位*/ { if(h!=b[0] && h!=b[1] && h!=b[4]) { b[2]=h; for(int g=0;g<10;g++)/*第4位*/ { if(g!=b[2] && g!=b[4] && g!=b[0] && g!=b[1]) { b[3]=g; n++; for(int v=0;v<5;v++) cout<<b[v]<<" "; cout<<endl; } } } } } } } } } cout<<n<<endl;/*13440种可能*/ return 0; }
时间: 2024-10-21 21:43:25