第七届蓝桥杯省赛JAVA B组第3题

来源:互联网 发布:淘宝1钻店卖 编辑:程序博客网 时间:2024/05/17 04:35
凑算式


     B      DEF
A + --- + ------- = 10
     C      GHI
     
(如果显示有问题,可以参见【图1.jpg】)
 
 
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。


比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。


这个算式一共有多少种解法?


注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

答案为:29

这道题用暴力的方法就可以了,对一到九进行全排列,然后计算一下等式是不是等于10就好了。

import java.util.Scanner;public class Main2 {public static void main(String[] args){int a=1,b=1,c=1,d=1,e=1,f=1,g=1,h=1,i=1;int count=0;int[] flag=new int[10];for(int m=0;m<10;m++){flag[m]=-1;}for(a=1;a<=9;a++){if(flag[a]==-1){flag[a]=1;for(b=1;b<=9;b++){if(flag[b]==-1){flag[b]=1;for(c=1;c<=9;c++){if(flag[c]==-1){flag[c]=1;for(d=1;d<=9;d++){if(flag[d]==-1){flag[d]=1;for(e=1;e<=9;e++){if(flag[e]==-1){flag[e]=1;for(f=1;f<=9;f++){if(flag[f]==-1){flag[f]=1;for(g=1;g<=9;g++){if(flag[g]==-1){flag[g]=1;for(h=1;h<=9;h++){if(flag[h]==-1){flag[h]=1;for(i=1;i<=9;i++){if(flag[i]==-1){float num=(float) 1.0;num=a+((float)b)/c+((float)(d*100+e*10+f))/(g*100+h*10+i);if(num==10){count++;System.out.println(count);System.out.println(a+" "+b+" "+c+" "+d+" "+e+" "+f+" "+g+" "+h+" "+i);}}}flag[h]=-1;}}flag[g]=-1;}}flag[f]=-1;}}flag[e]=-1;}}flag[d]=-1;}}flag[c]=-1;}}flag[b]=-1;}}flag[a]=-1;}}}}


阅读全文
0 0