用递归的方法求解,对于一些特殊的情况 单独讨论返回,比如N=3 M<2一定无解之类的,吧递归的最底层 color(1,M) color(2,M)等直接返回值。

对于这里用N来做递归的原因 就不多解释了吧(可能我的算法学的不是很好,直觉告诉我用N)

N,M 考虑两种情况,新加的第N块扇形的颜色跟旁边两块相关,

1.  如果旁边两块颜色不同 那么是color(N-1,M),那么第N块有M-2种颜色,有color(N-1,M)*(M-2)种可能;

2.  如果旁边两块颜色相同 那么是color(N-2,M)(相当于可以随便去掉第N块旁边的一块不影响讨论),那么第N块有M-1种颜色,有color(N-2,M)*(M-1)种可能;

综上,有1+2种情况。

package ForOffer;import java.util.Scanner;public class Offer {public static  void main(String[] args){System.out.println("请输入N,M");Scanner scan = new  Scanner(System.in);int  N = scan.nextInt();int  M = scan.nextInt();if(N >= 1 && M>=1){int kind = color(N,M);System.out.println ("涂颜色种类为"+kind);    }}public static int color (int N,int M){int kind_new = 0;if(N == 1 && M >=1)return M;if(N == 2 && M >=2)return M*(M-1);if(N == 3 && M>=3)return M*(M-1)*(M-2);if(N >3 && M >=2){kind_new=color(N-1,M)*(M-2) + color(N-2,M)*(M-1);//迭代 分两种情况 求和}return kind_new; }
}

着色问题 一个圆分成N个扇形,M种颜色,相邻区块重色 总工的着色方法数相关推荐

  1. 一个环由个圈组成,把自然数1,2,…,N分别放在每一个圆内,数字的在两个相邻圈之和应该是一个素数。 注意:第一圈数应始终为1。input: N(0~20)output:输出格式如下所示的样品。

    一个环由个圈组成,把自然数1,2,-,N分别放在每一个圆内,数字的在两个相邻圈之和应该是一个素数. 注意:第一圈数应始终为1. input: N(0~20) output:输出格式如下所示的样品.每一 ...

  2. 一个圆怎么平分三份_如图,把一个圆分成三等份,请你再设计1-2个不同的方法,把圆分成三等到份.(正确划分一个圆得2分,正确划分二个圆得3分)...

    尺规作图简史: "规"就是圆规,是用来画圆的工具,在我国古代甲骨文中就有"规"这个字."矩"就像现在木工使用的角尺,由长短两尺相交成直角而成 ...

  3. html圆形分成六份,在ai里怎么把一个圆平均分成几份

    1.AI 里圆圈怎么平均分成5份 AI里将圆圈平均分成5份的办法: 第一步:打开AI新建画布,画布的基本设置按照实际需求进行设置即可. 第二步:在工具栏中选择"极坐标网格工具",鼠 ...

  4. 如何让Python画笔画一个圆

    相信大家都学过圆吧,近几年来,一些科学家都试图求圆的面积,硬生生地将圆分成了N边型,但是这样子画圆很累,很复杂.所以说今天我就教大家如何用Python画圆. 没错还是祖传开头,导入turtle库 im ...

  5. 计算机网络多项式的定义,使用多项式方法定义一个圆

    第一种方法使用二阶多项式方程式定义一个圆, 如图所示: y2 = r2-x2其中x = x坐标y = y坐标r =圆半径 使用该方法, 可通过将x从0步进到90°来找到扇形中从90°到45°的每个x坐 ...

  6. java定义一个圆类_2.8.1 如何定义一个圆的类

    2.8  绝知此事要躬行--自己动手定义对象 在本章***一小节中不再给大家介绍更多新的知识,只是通过一个较为全面的实例把前面介绍的内容再复述一遍,好让大家加深一下印象,更深刻地理解一下Java的面向 ...

  7. 使用border-radius画圆、半圆、扇形

    使用border-radius画圆.半圆.扇形 !!!注意:ie9以下的浏览器是不支持 border-radius属性的 border-radius的数值有三种表式方法:px.%.em.这里说明一下 ...

  8. IOS开发—IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形

    一.绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形 //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画CGContextRef context = UIGrap ...

  9. IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形

    首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...

  10. HTML+CSS画圆、半圆、扇形、三角形

    使用border-radius:____px代码实现圆,半圆,扇形,三角形 1.圆 html中设定一个盒子 css中盒子样式 代码实现图 2.半圆 html中设定一个盒子 css中盒子样式 代码实现效 ...

最新文章

  1. SharpZipLib 提取压缩包文件并转换为NPOI中的Excel文件
  2. AGAT|GTF/GFF文件处理工具
  3. Deep learning前的图像预处理
  4. 微软Adam挑战Google Brain:我的机器学习比你快
  5. C语言——第六周作业
  6. java 二叉树的深度、平衡二叉树、二叉树的下一个结点
  7. Python资料分享来袭,收下不谢!
  8. 每天学一点Scala之Try
  9. matlab求函数方程的正根,matlab解方程组的时候,可以只要正根吗?
  10. XML转换JSON格式
  11. html 如何写退出程序,vb点击关闭窗口 单击退出程序的VB代码怎么写
  12. Springboot专利申请服务平台 毕业设计-附源码260839
  13. 挑战杯获奖作品_精仪科协 | 挑战杯获奖作品人物专访——刘宇航、郑重
  14. html打印页眉页脚_HTML5基本元素:页眉,导航和页脚
  15. 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
  16. 广州大学计算机投档分数线,2021年广州大学最低投档分数线及录取位次
  17. 【c#】键盘事件(keypress keydown keyup)
  18. iOS 拦截系统自带的Pop事件
  19. ncr管理系统_NCR餐饮系统操作指南
  20. 国外常用的软件测试网站

热门文章

  1. php 世界时间,PHP 时区列表[时差]
  2. 人际交往心理学 读后感
  3. 跨省游开放首展,海峡旅博会和休闲旅博会将在厦门举行
  4. Python学习笔记之os模块
  5. 文件读写处理:古诗问题
  6. android之三星手机权限问题解决方案
  7. Ubuntu系统(Linux)如何从大硬盘迁移到小硬盘
  8. html表格相同合并单元格,根据id相同,table表格动态合并
  9. aspose合并单元格
  10. 计算机的自动播放功能有什么用,禁用自动播放功能的几种方法