递归(1)

来源:互联网 发布:dota三大后期 知乎 编辑:程序博客网 时间:2024/04/28 09:48

1.

现有一平面,有n条直线分割这个平面,问能分割成几个面?

分析:

如图所示找到的规律:

代码编写如下:

#include <iostream>using namespace std;int function(int n){int f;if(n==0)f=1;elsef=function(n-1)+(n-1)+1;return f;}int main(){int n,m;cout<<"请输入有几条直线:"<<endl;cin>>n;m=function(n);n--;cout<<"这n条直线共分割的平面总数为:"<<m<<endl;return 0;}

2.

下面将直线变成折线,问n条折线会分割该平面为几块?

#include <iostream>using namespace std;int function1(int n){int f;if(n==0)f=1;elsef=function1(n-1)+4*n-3;return f;}int main(){int n,m;cout<<"请输入折线的条数"<<endl;cin>>n;m=function1(n);cout<<"这n条折线可以将这个平面分成"<<m<<"部分"<<endl;return 0;}

分析:

现将其中的一条折线看成两条平行线然后每增加一个顶点会增加


未完待续


原创粉丝点击