本文主要是介绍16年蓝桥JavaC组:凑算式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个算式中A ~ I 代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
public class Main {static int a[]={1,2,3,4,5,6,7,8,9};static int ans;public static void main(String[] args) {// TODO Auto-generated method stubf(0);System.out.println(ans);}private static void f(int b) {// TODO Auto-generated method stubif (b==9) {if (check()) {ans++;}}//全排列for (int i = b; i <9; i++) {{int t=a[i];a[i]=a[b];a[b]=t;}f(b+1);//回溯{int t=a[i];a[i]=a[b];a[b]=t;}}}private static boolean check() {// TODO Auto-generated method stubint x=a[3]*100+a[4]*10+a[5];int y=a[6]*100+a[7]*10+a[8];//用到了通分(判断式子成立并且和为10)if ((a[1]*y+a[2]*x)%(a[2]*y)==0 && a[0]+(a[1]*y+a[2]*x)/(a[2]*y)==10){return true;}return false;}}
这篇关于16年蓝桥JavaC组:凑算式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!