递推递归练习 B题
2017-03-27 12:34
211 查看
问题描述:
一块饼,切N刀最多能切成几块。
解题思路:
令a(n)为切n刀最多能分成的块数,可得:
a(1)=1+1=2
a(2)=1+1+2=4
a(3)=1+1+2+3=7
a(4)=1+1+2+3+4=11
在切法上是让每两条线都有交点,用归纳法可知
a(n)=a(n-1)+n
a(0)=1 (边界)
代码:
#include<iostream>
using namespace std;
int main()
{
int i,n,a[101];
a[0]=1;
for(i=1;i<101;i++)
{
a[i]=a[i-1]+i;
}
while (cin>>n)
cout<<a
<<endl;
return 0;
}
一块饼,切N刀最多能切成几块。
解题思路:
令a(n)为切n刀最多能分成的块数,可得:
a(1)=1+1=2
a(2)=1+1+2=4
a(3)=1+1+2+3=7
a(4)=1+1+2+3+4=11
在切法上是让每两条线都有交点,用归纳法可知
a(n)=a(n-1)+n
a(0)=1 (边界)
代码:
#include<iostream>
using namespace std;
int main()
{
int i,n,a[101];
a[0]=1;
for(i=1;i<101;i++)
{
a[i]=a[i-1]+i;
}
while (cin>>n)
cout<<a
<<endl;
return 0;
}