一道简单算法题目,看看各位最简单的解法
“用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。”有想法的可以把代码贴出来,明天下午我贴出我的代码,欢迎交流。先给出正确的输出数据:
192 384 576
219 438 657
273 546 819
327 654 981
#include<stdio.h> #include<stdlib.h> void main() { int i,j,a[9]; char b[3][4],*p; for(i=123;i<333;i++) { for(j=0;j<9;j++)a[j]=0; for(j=1;j<4;j++)itoa(i*j,b[j-1],10); p=&b[0][0]; for(j=0;j<12;j++){if(p[j]>0)if((p[j]-'1')>=0)a[p[j]-'1']++;} for(j=0;j<9;j++)if(a[j]!=1)break; if(j==9)printf("%d %d %d\n",i,i*2,i*3); } }
#include <stdio.h> void main () { int i,j,a[9]; for(i=123;i<333;i++) { for(j=0;j<9;j++)a[j]=0; for(j=i+i*2*1000+i*3*1000000;j>0;j=j/10)a[j%10-1]++; for(j=0;j<9;j++)if(a[j]!=1)break; if(j==9)printf("%d %d %d\n",i,i*2,i*3); } }