- 1.题目:
- 2.解法:
- 3.此题分析:
- 4.代码实例:
求问在以下图案的大三角形内部添加五条直线最多可以将大三角形分成多少个区域。
例如下图一共有 7 个区域。
请在下图的基础上添加五条直线。
有关数学几何 公式如下,但不能直接使用,具体情况具体分析
规律:f(n)=f(n-1)+n
公式:f(n)=n*(n+1)/2+1
我们先算几个来推一下 f(1) = 1*2/2+1 = 2 一条直线将1块七巧板最多切割成2块七巧板
f(2) = 2*3/2+1 = 4 两条直线将1块七巧板最多切割成4块七巧板
f(3) = 3*4/2+1 = 7 三条直线将1块七巧板最多切割成7块七巧板 找规律
由上面可以得出: 第一条直线穿过了1块七巧板,最终得到2块七巧板 第二条直线穿过了2块七巧板,最终得到4块七巧板 第三条直线穿过了3块七巧板,最终得到7块七巧板
总结: 下一次直线穿过的七巧板块数比上一次穿过的多1,且穿过了几块七巧板就多了几块,简单的说穿过几块就多几块。如:第三条直线穿过了3块,就多三块,4+3 = 7
3.此题分析:这道题我们可以发现,里面一共有6条直线,用公式计算的话,6条直线最多可以将一块七巧板切割成 f(6) = 6*7/2+1 = 23块七巧板,但是题目中只有7块七巧板,不够23块,所以下一次切割就不能直接用公式
我们可以推导一下 题目要求放5条直线 第一条直线最多穿过6个区域,如下图
根据上面2的总结:下一次直线穿过的七巧板块数比上一次穿过的块数多1 所以第二条直线穿过的块数为6+1=7
我们可以发现只要穿过几块七巧板就是多了几块,比如穿过了6块七巧板就多了6块,穿过了7块七巧板就多了7块
所以以此类推 我们就可以写代码了
4.代码实例:public class Main{
public static void main(String[] args) {
int a = 7;//代表一开始有7个区域
int b = 6;//代表第一次最多穿过6个区域
for (int i = 1; i
关注
打赏
- Android --- 异步任务机制之AsyncTask
- Android --- java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvi
- Android --- AS启动报错,点什么都点不了com.intellij.ide.plugins.PluginManager(ubuntu)
- Android --- 浅谈下 ImageView 的 setImageLevel 方法走过的坑
- 【数据库系统】- 分布式数据库 - 分片透明、复制透明、位置透明、逻辑透明
- 【数据库原理】闭包与候选码的求法,你掌握技巧了吗?
- UML类图与类的关系详解
- Android --- 文件的创建、写入、读取、压缩操作示例代码
- Android --- 强引用、软引用、弱引用和虚引用
- Android --- Handler 内存泄漏原因及解决方案