题目描述:王小二自夸活好,刀工不错,有人给他画了个大饼,问他:“切100刀能把大饼分成多少块?”,切法是让每两条线都有交点。
定义n为切的刀数
定义q(n)为n刀能分成的块数
找规律:
n=0 q(0)=1 (边界条件,一刀都不切当然只有一块)
n=1 q(1)=1+1
n=2 q(2)=1+1+2
n=3 q(3)=1+1+2+3
n=4 q(4)=1+1+2+3+4
…
q(n)=q(n-1)+n(递推公式)
代码实现如下:
#include<iostream>
using namespace std;
int q(int n);//声明函数q
int main(){
int n;
cin>>n;
cout<<q(n);
return 0;
}
int q(int n){
if(n==0){//边界条件
return 1;
}else{
return q(n-1)+n;//递推公式
}
}