1-9九个数字组成一个九位数,数字没有重复。如果从左边起取出1个数字,需要能被1整除,取出两个数字组成的数能被2整除,取出三个数字组成的数能被3整除,依次类推。。。每次取数都是从左边取。问,这个数是什么?给出求解此数的算法。

代码如下:

import java.util.Arrays; public class MagicDiv { private int[] used = new int[10]; public void find(){ Arrays.fill(used,0); used[5] = 1; dfs(0,1); } public void dfs(int pre, int pos){ if(pos > 9){ System.out.println(pre); return; } int tmp = pre * 10; if(pos == 5){ dfs(tmp + 5 , pos + 1); }else{ for (int i = 1; i < 10; i++) { if(used[i] == 0 ){ int cur = tmp + i; if(cur % pos == 0){ used[i] = 1; dfs(cur,pos + 1); used[i] = 0; } } } } } public static void main(String[] args) { new MagicDiv().find(); } }

转自:http://yangguo.javaeye.com/blog/801820

1-9九个数字组成一个九位数 如果从左边起取出1个数字,需要能被1整除,取出两个数字组成的数能被2整除,取出三个数字组成的数能被3整除,依次类推相关推荐

  1. 定义一个方法,使用随机的字母+数字生成一个6位数的密码

    @Testpublic void test10() {//调用PassWord方法打印输出System.out.println(PassWord());}//定义一个方法,使用随机的字母+数字生成一个 ...

  2. 假设有 50 瓶饮料,喝完三个空瓶可以换一瓶饮料,依次类推,请问 总共喝了多少饮料。

    /*假设有 50 瓶饮料,喝完三个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少饮料. */ public static void main(String[] args) {int n = 50; / ...

  3. 接收输入的一行字符,统计出字符串包含数字的个数 2、编写一个程序,计算字符串中子串出现的次数 3、请输入星期几的第1个字母,用来判断是星期几,如果第1个字母一样,则继续判断第2个字母,依次类推。

    1.接收输入的一行字符,统计出字符串包含数字的个数 list_1 = input('请输入一行字符串:') count = 0 for i in list_1:if '0' <= i <= ...

  4. 假设有 50 瓶饮料,喝完三个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少饮料

    1  while System.out.println("-------------case1---用while");int n = 50; // 初始饮料总数int i = 0; ...

  5. 编写一个程序,求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。

    package com.Demo;public class test12 {public static void main(String[] args) {/** 编写一个程序,求出200到300之间 ...

  6. 【数字孪生】三谈“数字孪生”——更深入的研究与应用

    数字孪生(Digital Twin),并非今天才产生,已经走过了几十年的发展历程,只不过以前没有这样命名,而是走到了一定的发展阶段,人们意识到可以给这种技术起一个更确切的名字.实际上,自从有了诸如CA ...

  7. 由m种数字组成的n位数有多少个

    知乎链接 问题描述 我和我女朋友的QQ号都是九位数字,这九个数字是有七个不同的数字组成的,我想问这种概率是多大,我们是不是特别我看缘分呢?求大神给算一下概率! 思路 定义问题:由7种数字组成的9位数一 ...

  8. C语言编程输入一个5位数以内的正整数,完成以下操作

    <1>判断输入的数是一个几位数 这里利用一个简单的while循环即可实现 while (x){if (x / 10 != 0)suu++;x = x / 10;} <2>按序或 ...

  9. Java黑皮书课后题第5章:5.11(找出能被5或6整除的数,但不能同时整除)编写程序,显示从100到1000之间能被5或6整除但不能同时整除的数,每行显示10个。数字之间用一个空格字符隔开

    5.11(编写程序,显示从100到1000之间能被5或6整除但不能同时整除的数,每行显示10个.数字之间用一个空格字符隔开 题目 题目概述 破题 引申:continue break与return 代码 ...

最新文章

  1. reddit_如何将多个子Reddit与多个Reddit合并
  2. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)
  3. 51单片机c语言计数程序,51单片机INTOINT1中断计数c语言源程序.doc
  4. 判断用户是否开启定位功能 / 判断用户是否为应用程序开启定位功能
  5. meta http-equiv(属性详解)
  6. 如何提取动图中的某一帧?教你一招在线分解gif
  7. 【好玩的小demo】微信QQ聊天数据统计分析
  8. MyEclipse10破解教程
  9. 量子纠缠1——量子比特、Bell态、EPR佯谬
  10. 学校计算机教室用多大线径电缆,施工要用多大的电线电缆?本文教你怎么算
  11. 二代测序方法:DNA测序之靶向重测序
  12. 从现在开始探索工业元宇宙讲座发言稿 34500字
  13. CSS3之多列布局columns学习
  14. C语言查找素数的几种实现方法及代码的优化
  15. Android设备通过USB共享网络给OpenWrt路由器
  16. 物联网无线通信模块的新选择
  17. 安mysql一直转圈_在访问数据库时没报错一直转圈,mysql版本不同的连接方式
  18. centos7 解决硬盘内存爆满
  19. python大数据课程培训大纲
  20. vue开发:移动端图片上传

热门文章

  1. 数据挖掘与数据分析(快速入门)
  2. Python系列 49 内置模块:subprocess
  3. LogisticRegression函数
  4. QLabel的四种显示方式
  5. Pandas数据分析库(2)Python数据分析
  6. 什么是javaweb开发?
  7. 自然语言处理不属于计算机科学,自然语言处理是一门融语言学、计算机科学和什么于一体的科学...
  8. 【小记】LaTex 语法说明
  9. 在TeXstuidio中如何设置XeLaTeX编译
  10. 人工智能领域的十大算法