6.方格填数  (结果填空)

如下的10个格子

(如果显示有问题,也可以参看【图1.jpg】)

填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)

一共有多少种可能的填数方案?

请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

提示:和前面第4题分小组,都是用的全排列的思想,只是这个附加了条件,在递归出口时多加一下题目里的附加条件

思路:将表格从上到下从左到右从0开始编号 ,判断每种相邻的方案是否为连续数字,不是则+1

 public class _6方格填数 {
public static void main(String[] args) {
// char[] str={'0','1','2','3','4','5','6','7','8','9'};
char[] str="0123456789".toCharArray();
paixu(str, 0, str.length-1);
System.out.println(count);
}
public static int count=0;
//交换位置
public static void swap(char[] c,int i,int j){
char temp = c[i];
c[i] = c[j];
c[j] = temp;
}
//排序
public static void paixu(char[] c,int from,int to){
if (to<=1) {
return;
}if (from == to) {
if (check(c)) {
count++;
}
}else{
for (int i = from; i <= to; i++) {
swap(c, i, from);
paixu(c, from+1, to);
swap(c, from, i);
}
}
}
// 检查左右,上下,对角不是相邻的数字
public static boolean check(char[] c) {
if (check2(c[0], c[1]) && check2(c[0], c[3]) && check2(c[0], c[4])&& check2(c[0], c[5])
&& check2(c[1], c[2])&& check2(c[1], c[4])&& check2(c[1], c[5])&& check2(c[1], c[6])
&& check2(c[2], c[5])&& check2(c[2], c[6])
&& check2(c[3], c[4])&& check2(c[3], c[7])&& check2(c[3], c[8])
&& check2(c[4], c[5])&& check2(c[4], c[7])&& check2(c[4], c[8])&& check2(c[4], c[9])
&& check2(c[5], c[6])&& check2(c[5], c[8])&& check2(c[5], c[9])
&& check2(c[6], c[9])
&& check2(c[7], c[8])
&& check2(c[8], c[9])) {
return true;
}
return false;
}
// 检查相邻的数字
public static boolean check2(char a,char b){
if (a == (b+1)||a==(b-1)) {
return false;
}
return true;
}
}

运行结果:1580

java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数的更多相关文章

  1. java算法 第七届 蓝桥杯B组(题+答案) 10.压缩变换

    10.压缩变换  (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...

  2. java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈

    9.取球博弈  (程序设计) 两个人玩取球的游戏.一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目.如果无法继续取球,则游戏结束.此时,持有奇数个球的一方获胜.如果两人都是 ...

  3. java算法 第七届 蓝桥杯B组(题+答案) 8.四平方和

    8.四平方和  (程序设计) 四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和.如果把0包括进去,就正好可以表示为4个数的平方和. 比如:5 = 0^2 + 0^2 + ...

  4. java算法 第七届 蓝桥杯B组(题+答案) 7.剪邮票

    7.剪邮票  (结果填空) 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红 ...

  5. java算法 第七届 蓝桥杯B组(题+答案) 5.抽签

    5.抽签  (代码填空) X星球要派出一个5人组成的观察团前往W星.其中:A国最多可以派出4人.B国最多可以派出2人.C国最多可以派出2人..... 那么最终派往W星的观察团会有多少种国别的不同组合呢 ...

  6. java算法 第七届 蓝桥杯B组(题+答案) 4.分小组

    4.分小组  (代码填空) 9名运动员参加比赛,需要分3组进行预赛.有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法. 该程序的正常输出为:ABC DEF ...

  7. java算法 第七届 蓝桥杯B组(题+答案) 3.凑算式

    3.凑算式  (结果填空) B      DEFA + --- + ------- = 10     C      GHI         (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~ ...

  8. java算法 第七届 蓝桥杯B组(题+答案) 2.生日蜡烛

    2.生日蜡烛  (结果填空) 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛.现在算起来,他一共吹熄了236根蜡烛.请问,他从多少岁开始过生日party的?请填写他开 ...

  9. java算法 第七届 蓝桥杯B组(题+答案) 1.煤球数目

    1.煤球数目  (结果填空) 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少 ...

随机推荐

  1. 给StackPanel的子元素添加padding

    <StackPanel> <StackPanel.Resources> <Style TargetType="{x:Type TextBox}"> ...

  2. win32鼠标和键盘相关函数

    键盘相关函数:http://msdn.microsoft.com/en-us/library/windows/desktop/ms645530%28v=vs.85%29.aspx 鼠标相关函数:htt ...

  3. css animation动画

    css 动画: 动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果. 必要元素: a.通过@keyframes指定动画序列:自动补间动画,确定两 ...

  4. 基于openresty 的几个开发框架

    1. kong    api  gateway     Github:   https://github.com/Mashape/kong 2.  Lapis   web 开发框架   Github: ...

  5. VMware下安装的Mac OS X如何修改显示分辨率 (转)

    我在Win7下利用VMware安装了苹果的OS x 10.8系统,安装成功启动后,发现分辨率为1024*768,而宿机的分辨率是1440*900,我想让虚拟机全屏显示,也就是想在雪豹下屏幕的分辨率也能 ...

  6. 基于标准库的string类实现简单的字符串替换

    感觉基本功还是不扎实,虽然能做些程序但是现在看来我还是个初学者(primer),试着完成习题结果还得修修改改. 废话不多说,实现功能很简单,<C++ Primer>9.5.2节习题. // ...

  7. flv 解封装

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define DEBUG_INFO type ...

  8. Java-Runoob-高级教程:Java 泛型

    ylbtech-Java-Runoob-高级教程:Java 泛型 1.返回顶部 1. Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检 ...

  9. python学习 (三十三) Modules

    1: 方法一: 导入整个模块 import math class ModulesDemo(): def builtin_modules(self): print(math.sqrt()) m = Mo ...

  10. Svg 和 canvas的区别

    Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的. SVG SVG 是一种使用 XML 描述 2D 图形的语言. SVG 基于 XML,这意味着 SVG DOM 中的每个 ...