回复 9楼 thunder_2011
这个能求出来一些重复的数字组成的...不能满足 每个数只用一次的 原则...
int f(int i,int j,int k) {int a[9]; a[0]=i%10; a[1]=i/10%10; a[2]=i/100; a[3]=j%10; a[4]=j/10%10; a[5]=j/100; a[6]=k%10; a[7]=k/10%10; a[8]=k/100; for(i=0;i<9;i++) for(j=i;j<9;j++) if(a[i]>a[j]) {int t=a[i]; a[i]=a[j]; a[j]=t;} for(i=0;i<9;i++) if(a[i]!=i+1) {return 0; break;} if(i>=9) return 1; } main() {int i,j,k; for(i=100;i<1000;i++) for(j=100;j<1000;j++) for(k=100;k<1000;k++) if(6*i==3*j&&3*j==2*k&&f(i,j,k)) printf("%5d%5d%5d\n",i,j,k); getch();}
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int i = 0, j = 0, k = 0, num = 0; 6 7 for (i = 1; i < 10; i++) 8 { 9 for (j = 1; j < 10; j++) 10 { 11 if (j == i) 12 continue; 13 14 for (k = 1; k < 10; k++) 15 { 16 if (k == i || k == j) 17 continue; 18 19 num = i * 100 + j * 10 + k; 20 21 if (num * 3 <= 999) 22 printf("%d:%d:%d = 1:2:3\n", num, num*2, num*3); 23 } 24 } 25 } 26 27 return 0; 28 }