凑算式
Posted xingxingbclg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了凑算式相关的知识,希望对你有一定的参考价值。
题目描述:
B DEF
A + — + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中AI代表19的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
/** * @version 1.0 * @auther 孙沐华 */ public class test03 private static int count=0; public static void main(String[] args) /* B DEF A + — + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中AI代表19的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。 */ int[] arr=1,2,3,4,5,6,7,8,9; arrange(arr,0); System.out.println(count); public static void arrange(int[] arr ,int k) if (k>=arr.length) if (check(arr)) count++; return; for (int i = k; i <arr.length ; i++) int t=arr[k]; arr[k]=arr[i]; arr[i]=t; arrange(arr,k+1); t=arr[k]; arr[k]=arr[i]; arr[i]=t; public static boolean check(int[] arr) int a=arr[0]; int b= arr[1]; int c=arr[2]; int d=arr[3]*100+arr[4]*10+arr[5]; int e=arr[6]*100+arr[7]*10 +arr[8]; if ((a+(b+0.0)/c+(d+0.0)/e)==10) //这里加上0.0 是防止在做除法运算的时候出现数据丢失 //B*E + C*D == (10 - A) * C * E return true; else return false;
以上是关于凑算式的主要内容,如果未能解决你的问题,请参考以下文章
蓝桥杯第六届-牌型总数&&蓝桥杯第七届-凑算式&&蓝桥杯第七届-方格填数