着色问题 一个圆分成N个扇形,M种颜色,相邻区块重色 总工的着色方法数
用递归的方法求解,对于一些特殊的情况 单独讨论返回,比如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,2,…,N分别放在每一个圆内,数字的在两个相邻圈之和应该是一个素数。 注意:第一圈数应始终为1。input: N(0~20)output:输出格式如下所示的样品。
一个环由个圈组成,把自然数1,2,-,N分别放在每一个圆内,数字的在两个相邻圈之和应该是一个素数. 注意:第一圈数应始终为1. input: N(0~20) output:输出格式如下所示的样品.每一 ...
- 一个圆怎么平分三份_如图,把一个圆分成三等份,请你再设计1-2个不同的方法,把圆分成三等到份.(正确划分一个圆得2分,正确划分二个圆得3分)...
尺规作图简史: "规"就是圆规,是用来画圆的工具,在我国古代甲骨文中就有"规"这个字."矩"就像现在木工使用的角尺,由长短两尺相交成直角而成 ...
- html圆形分成六份,在ai里怎么把一个圆平均分成几份
1.AI 里圆圈怎么平均分成5份 AI里将圆圈平均分成5份的办法: 第一步:打开AI新建画布,画布的基本设置按照实际需求进行设置即可. 第二步:在工具栏中选择"极坐标网格工具",鼠 ...
- 如何让Python画笔画一个圆
相信大家都学过圆吧,近几年来,一些科学家都试图求圆的面积,硬生生地将圆分成了N边型,但是这样子画圆很累,很复杂.所以说今天我就教大家如何用Python画圆. 没错还是祖传开头,导入turtle库 im ...
- 计算机网络多项式的定义,使用多项式方法定义一个圆
第一种方法使用二阶多项式方程式定义一个圆, 如图所示: y2 = r2-x2其中x = x坐标y = y坐标r =圆半径 使用该方法, 可通过将x从0步进到90°来找到扇形中从90°到45°的每个x坐 ...
- java定义一个圆类_2.8.1 如何定义一个圆的类
2.8 绝知此事要躬行--自己动手定义对象 在本章***一小节中不再给大家介绍更多新的知识,只是通过一个较为全面的实例把前面介绍的内容再复述一遍,好让大家加深一下印象,更深刻地理解一下Java的面向 ...
- 使用border-radius画圆、半圆、扇形
使用border-radius画圆.半圆.扇形 !!!注意:ie9以下的浏览器是不支持 border-radius属性的 border-radius的数值有三种表式方法:px.%.em.这里说明一下 ...
- IOS开发—IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形
一.绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形 //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画CGContextRef context = UIGrap ...
- IOS绘制圆,直线,弧线,矩形,扇形,三角形,贝塞尔等图形
首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...
- HTML+CSS画圆、半圆、扇形、三角形
使用border-radius:____px代码实现圆,半圆,扇形,三角形 1.圆 html中设定一个盒子 css中盒子样式 代码实现图 2.半圆 html中设定一个盒子 css中盒子样式 代码实现效 ...
最新文章
- SharpZipLib 提取压缩包文件并转换为NPOI中的Excel文件
- AGAT|GTF/GFF文件处理工具
- Deep learning前的图像预处理
- 微软Adam挑战Google Brain:我的机器学习比你快
- C语言——第六周作业
- java 二叉树的深度、平衡二叉树、二叉树的下一个结点
- Python资料分享来袭,收下不谢!
- 每天学一点Scala之Try
- matlab求函数方程的正根,matlab解方程组的时候,可以只要正根吗?
- XML转换JSON格式
- html 如何写退出程序,vb点击关闭窗口 单击退出程序的VB代码怎么写
- Springboot专利申请服务平台 毕业设计-附源码260839
- 挑战杯获奖作品_精仪科协 | 挑战杯获奖作品人物专访——刘宇航、郑重
- html打印页眉页脚_HTML5基本元素:页眉,导航和页脚
- 非接触IC卡中typeA卡和typeB卡的区别--总结,二者的调制方式和编码方式不同
- 广州大学计算机投档分数线,2021年广州大学最低投档分数线及录取位次
- 【c#】键盘事件(keypress keydown keyup)
- iOS 拦截系统自带的Pop事件
- ncr管理系统_NCR餐饮系统操作指南
- 国外常用的软件测试网站