本文主要是介绍蓝桥杯 9数算式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
蓝桥杯 9数算式
标题:9数算式
观察如下的算式:
9213 x 85674 = 789314562
左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。
而乘积恰好也是用到了1~9的所有数字,并且每个1次。
请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?
注意:
- 总数目包含题目给出的那个示例。
- 乘数和被乘数交换后作为同一方案来看待。
public class equationfor9number {public static int a[] = new int[10];public static int visited1[] = new int[10];public static int count;public static boolean check(int result) {int visited2[] = new int[10];do {int j = result%10;result = result/10;if(j==0) {//System.out.println(j);return false;}visited2[j]=1;}while(result!=0);for(int i=1;i<10;i++) {if(visited2[i]==0) {return false;}}return true;}public static void dfs(String step) {if(step.length()==9) {//System.out.println(step);for(int i=1;i<9;i++) {String left = step.substring(0, i);String right = step.substring(i,9);int result = Integer.parseInt(left) * Integer.parseInt(right);if(check(result)) {count++;}}return;}for(int i=1;i<10;i++) {if(visited1[i]==0) {visited1[i]=1;dfs(step+i);visited1[i]=0;}}}public static void main(String[] args) {// TODO Auto-generated method stubString number="";dfs(number);System.out.println(count/2);}}
这篇关于蓝桥杯 9数算式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!