「糟糕」再写这么乱且无用的代码,罚自己不吃午饭
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「糟糕」再写这么乱且无用的代码,罚自己不吃午饭相关的知识,希望对你有一定的参考价值。
用1、2、3、4、5、6组成一个乘法算式。要求每个数字只能使用一次,乘数为一位数
1 #include<stdio.h> 2 int i; 3 int ss[2],dd[6]; 4 void px(int q,int w) 5 { 6 ss[0]=q*10+w; 7 ss[1]=w*10+q; 8 } 9 void zx(int q,int w,int e) 10 { 11 int f,m; 12 int cc[3]; 13 for(f=0;f<6;f++) 14 dd[f]=1; 15 dd[q-1]=0;dd[w-1]=0;dd[e-1]=0; 16 for(f=0,m=0;f<6;f++) 17 if(dd[f]) 18 { 19 cc[m]=f+1; 20 m++; 21 } 22 dd[0]=cc[0]*100+cc[1]*10+cc[2]; 23 dd[1]=cc[0]*100+cc[2]*10+cc[1]; 24 dd[2]=cc[1]*100+cc[2]*10+cc[0]; 25 dd[3]=cc[1]*100+cc[0]*10+cc[2]; 26 dd[4]=cc[2]*100+cc[1]*10+cc[0]; 27 dd[5]=cc[2]*100+cc[0]*10+cc[1]; 28 } 29 void sx() 30 { 31 int g,j,k; 32 for(g=0;g<2;g++) 33 for(j=0;j<6;j++) 34 if (ss[g]*(i+1)==dd[j]) 35 printf("%d * %d = %d\n",ss[g],i+1,dd[j]); 36 } 37 int main() 38 { 39 int j,k,l,n,m; 40 int a[6]; 41 for (i=0;i<=5;i++) 42 a[i]=1; 43 44 45 46 47 for(i=0;i<6;i++) 48 { 49 a[i]=0; 50 for(k=0;k<5;k++) 51 if (a[k]) 52 { 53 a[k]=0; 54 for(l=k+1;l<6;l++) 55 { if (a[l]) 56 { 57 a[l]=0; 58 px(k+1,l+1); 59 zx(i+1,k+1,l+1); 60 sx(); 61 a[l]=1; 62 } 63 } 64 a[k]=1; 65 } 66 a[i]=1; 67 } 68 return 0; 69 } 70 71 [email protected]:~/桌面$ ./5 72 54 * 3 = 162 73 [email protected]:~/桌面$
以上是关于「糟糕」再写这么乱且无用的代码,罚自己不吃午饭的主要内容,如果未能解决你的问题,请参考以下文章