- 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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?