巧填空格

来源:百度知道 编辑:UC知道 时间:2024/05/04 07:05:27
将1,2,3,4,5,6,7,8,9这九个数字填入空格,使等式成立。
()()()=1/2×()()()=1/3×()()()

327=654/2=981/3
192=384/2=576/3
219=438/2=657/3
273=546/2=819/3
应该没有别的组合了

用编程做的,总共出了10种情况,很容易就挑出只有以上4中符合题意
以下附上c语言源代码:
#include<stdio.h>
#include<stdlib.h>
main()
{
int a,b,c,i,j,x,y,z,k,m,n,q;
for(i=123;i<765;i++){
a=i/100;
b=i/10-a*10;
c=i%10;
if((a==b)||(b==c)||(a==c)) continue; /*i每位都不同*/
if((a==0)||(b==0)||(c==0)) continue; /*i每位都不等于0*/
j=2*i;
k=3*i;

if((j>1000)||(k>1000)) continue; /*j,k都要小于1000*/
x=j/100;
y=j/10-x*10;
z=j%10;
m=k/100;
n=k/10-m*10;
q=k%10;
if((x==0)||(y==0)||(z==0)) continue; /*j每位都不等于0*/
if((m==0)||(n==0)||(q==0)) continue; /*k每位都不等于0*/
if((x==y)||(y==z)||(x==z)) continue; /*j每位都不同*/
if((m==n)||(n==q)||(m==q)) continue; /*k每位都不同*/
if((a==x)||(x==m)||(a==m)) continue; /*i,j,k对应的百位都不同*/
if((b==y)||(y==n)||(b==n)) continue; /*i,j,k对应的十位都不同*/