第七届蓝桥杯javaB组真题解析-凑算式(第三题)
2018-03-15 11:12
399 查看
凑算式 B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
采用全排列的算法 还是不太懂 但是本题需要注意的是要将int型隐形转换成double类型 因为3/2=1而不是1.5还有一种暴力破解法 稍后再做整理吧
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
采用全排列的算法 还是不太懂 但是本题需要注意的是要将int型隐形转换成double类型 因为3/2=1而不是1.5还有一种暴力破解法 稍后再做整理吧
import java.util.*; public class Main{ static int sum =0 ; static void f(int[]aa, int k){ if(k==aa.length-1){ if(aa[0]+aa[1]*1.0/aa[2]+(aa[3]*100+aa[4]*10+aa[5])*1.0/(aa[6]*100+aa[7]*10+aa[8])-10 ==0){ sum +=1; // System.out.println(aa[0]+""+aa[1]+aa[2]+aa[3]+aa[4]+aa[5]+aa[6]+aa[7]+aa[8]); } // System.out.println(aa[0]+""+aa[1]+aa[2]); return; } for(int i=k; i<aa.length; i++){ {int t=aa[k]; aa[k]=aa[i];aa[i]=t;}//试探 f(aa,k+1); {int t=aa[k]; aa[k]=aa[i];aa[i]=t;}//回溯 } } public static void main(String [] args){ int aa [] = {1,2,3,4,5,6,7,8,9}; // int aa [] = {1,2,3}; f(aa,0); System.out.println(sum); } }补充:全排列递归算法例如:abc首先锁定第一位 对bc进行全排列 得 a bc ; a cb将a和b交换 锁定第一位b 得 b ac ; b ca;不断的进行递归排序得到最终的全排列
相关文章推荐
- 第七届蓝桥杯JAVA B组真题解析-凑算式(第三题)
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
- 第七届蓝桥杯javaB组真题解析-方格填数(第六题)
- 第七届蓝桥杯JAVAb组第三题凑算式
- 第七届蓝桥杯javaB组真题解析-煤球数目(第一题)
- 第七届蓝桥杯大赛个人赛省赛(软件类)java语言B组第三题:凑算式
- 第七届蓝桥杯B组 第三题 凑算式
- 算法笔记_211:第七届蓝桥杯软件类决赛部分真题(Java语言A组)
- 第七届蓝桥杯 省赛 JavaB组 凑算式
- 蓝桥杯第七届国赛JAVA真题----平方末尾
- 蓝桥杯第七届国赛JAVA真题----七星填数
- 算法笔记_213:第七届蓝桥杯软件类决赛部分真题(Java语言C组)
- 第七届java蓝桥杯之凑算式
- 第七届蓝桥杯大赛个人赛省赛 B组第三题凑算式
- 蓝桥杯第七届国赛JAVA真题----机器人塔
- 2016第七届蓝桥杯C/C++ B组省赛第三题:凑算式
- 蓝桥杯 第七届JavaB组真题 方格填数
- 第七届蓝桥杯决赛JavaA组第三题_棋子换位
- 第七届蓝桥杯JAVA语言B组_凑算式
- 第七届蓝桥杯软件类省赛真题-C-B-3_凑算式