9算数式

题目描述

观察如下的算式:

9213 x 85674 = 789314562

左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。

而乘积恰好也是用到了1~9的所有数字,并且每个1次。

请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?

注意:

  1. 总数目包含题目给出的那个示例。
  2. 乘数和被乘数交换后作为同一方案来看待。
import java.io.File;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.util.Scanner; /**
*
* @description TODO
* @author frontier
* @time 2019年3月23日 上午9:24:01
*
*/
public class 结果填空29算数式 {
static Scanner in = new Scanner(System.in);
static boolean[] vis = new boolean[10];
static int count;
static int a, b, result; public static void main(String[] args) throws ParseException, FileNotFoundException {
Scanner in = new Scanner(new File("src/JavaA/s8/1.txt"));
dfs(0, "");
System.out.println(count / 2); } static boolean check(int num) {
String n = num + "";
boolean[] v = new boolean[10];
if (n.length() != 9)
return false;
for (int i = 0; i < 9; ++i) {
int cur = Integer.parseInt(n.charAt(i) + "");
if (cur < 1 || cur > 9)
return false;
if (!v[cur])
v[cur] = true;
else
return false;
}
return true;
} static boolean check1(int resultNum) {
boolean isVisitedC[] = new boolean[10];
while (resultNum != 0) {
int numNow = resultNum % 10;
if (numNow < 1 && numNow > 9)
return false;
isVisitedC[numNow] = true;
resultNum /= 10;
}
for (int i = 1; i < 10; i++) {
if (isVisitedC[i] == false)
return false;
}
return true;
} static void dfs(int n, String s) {
if (n == 9) {
for (int i = 1; i <= 8; ++i) {
a = Integer.parseInt(s.substring(0, i));
b = Integer.parseInt(s.substring(i));
result = a * b;
if (check(result))
count++;
}
return;
} for (int i = 1; i <= 9; ++i) {
if (!vis[i]) {
vis[i] = true;
dfs(n + 1, s + i);
vis[i] = false;
}
}
}
}

Java实现第八届蓝桥杯9算数式的更多相关文章

  1. Java实现第八届蓝桥杯购物单

    购物单 题目描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打 ...

  2. Java实现第八届蓝桥杯拉马车

    拉马车 题目描述 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的 ...

  3. Java实现第八届蓝桥杯国赛 数字划分

    标题:数字划分 w星球的长老交给小明一个任务: 1,2,3-16 这16个数字分为两组. 要求: 这两组数字的和相同, 并且,两组数字的平方和也相同, 并且,两组数字的立方和也相同. 请你利用计算机的 ...

  4. Java实现第八届蓝桥杯图形排版

    标题:图形排版 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi. 假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 1. 该工具会按照 ...

  5. Java实现第八届蓝桥杯魔方状态

    魔方状态 题目描述 二阶魔方就是只有2层的魔方,只由8个小块组成. 如图p1.png所示. 小明很淘气,他只喜欢3种颜色,所有把家里的二阶魔方重新涂了颜色,如下: 前面:橙色 右面:绿色 上面:黄色 ...

  6. Java实现第八届蓝桥杯青蛙跳杯子

    青蛙跳杯子 题目描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里 ...

  7. Java实现第八届蓝桥杯兴趣小组

    兴趣小组 为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组 (以下称A组,B组,C组). 每个小组的学生名单分别在[A.txt],[B.txt]和[C.txt]中. 每个文件中存储的是学生的 ...

  8. Java实现第八届蓝桥杯外星日历

    外星日历 题目描述 某星系深处发现了文明遗迹. 他们的计数也是用十进制. 他们的文明也有日历.日历只有天数,没有年.月的概念. 有趣的是,他们也使用了类似"星期"的概念, 只不过他 ...

  9. java实现第八届蓝桥杯生命游戏

    生命游戏 题目描述 康威生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 这个游戏在一个无限大的2D网格上进行. 初始时,每个小方格中居住着一个活着或死了的细胞. 下一时刻每个细胞的 ...

随机推荐

  1. STL库中神奇函数nth_element

    用法:nth_element(数组名,数组名+第k小元素,数组名+元素个数) 这个函数主要用来将数组元素中第k小的整数排出来并在数组中就位,随时调用. 例如: ]={,,,,},k ; cin> ...

  2. 9、AutoResponder返回本地数据(mock)

    前言 mock可以说是面试必问的话题的,我第一次接触mock的时候也是一脸懵逼.虽然fiddler工具用了很久,里面的打断点,设置自动返回数据功能都用过.mock说的通俗一点就是模拟返回数据,只是面试 ...

  3. Vue中如何监听组件的原生事件

    在首页开发中,右下角有一个返回顶部的小箭头,将它单独封装成一个BackTop组件,但是它何时出现需要依赖于首页的滑动,即另外一个Scroll组件.如果直接在BackTop组件里面监听,则需要通过thi ...

  4. 最近关于pc 组装总结

    1. 平台之争 amd 还是intel 这个时代,intel 的cpu已经领先amd 太多了.工艺上门,虽然amd 的u 一般都不锁倍频,但是oc的代价是要有一块堆料的主板,然后散热要牛逼,好的散热至 ...

  5. 二、YARN

    一.YARN 介绍 yarn 是下一代 MapReduce,即 MRv2,是在第一代 MapReduce 基础上演变而来的,主要是为了解决原始 Hadoop 扩展性较差,不支持多计算框架而提出的,通俗 ...

  6. django安装及其他模块导入

    django安装 python项目第三方模块配置 pip3 list------查看当前pip安装的第三方模块

  7. oracle 查询表及字段结构

    select --*tcl.column_name,cc.comments col_comments,data_type,case data_type when 'NUMBER' then '('|| ...

  8. eclipse的Android一些问题

    我最近在学习Android 用eclipse来写Android项目 一开始就遇到了许多的坑——但好在有老师们帮助.还有百度: 现在我开始总结: 1.安装eclipse,这个暂时不说,因为我还没遇到什么 ...

  9. Spring BeanFactory 容器

    Spring 的 BeanFactory 容器 这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory. ...

  10. rfind()的使用

    今天学了一个新函数 rfind 使用: str=123/456 str.rfind('/',1,6) 返回的是从1到6找最后一个/的位置