算法—回溯法桥本分数式

/* 将1-9九个数不重复地赋给不同的9个元素 ,实现形如a/bc+d/ef=f/hi 的形式: 例:1/26+5/78=4/391/32+5/96=7/84(注意:1/26+5/78=4/39 和5/78+1/26=4/39 只能算一种解) 求满足条件的解共有多少个? */ #include "stdio.h" void main() { int i,k,g,s; int m1,m2,m3,a[10]; a[1]=1; i=1; g=1; s=0; while(1) { g=1; for(k=i-1; k>0; k--)//注意此处很容易由于习惯错写成 for(k=i-1; i>0; i--) if(a[k]==a[i]) {g=0; break; } //两数相同,标记g=0if(i==9 && g==1 && a[1]1) i--; //向上一步回溯 if(a[i]==9 && i==1) break; //注意此处不能简写成 if(a[1]==9) else a[i]++; } printf("共有%d个解!",s); }


    推荐阅读